Поделиться через


Руководство по созданию и форматированию таблицы Excel

В этом руководстве описаны основы записи, редактирования и написания сценария Office для Excel. Вы запишите сценарий, применяющий форматирование к листу продаж. После этого вы измените записанный сценарий, чтобы применить дополнительное форматирование, создать таблицу и отсортировать ее. Эта шаблон записи с последующим изменением является важным инструментом для просмотра ваших действий Excel в виде кода.

Необходимые компоненты

Для работы с этим руководством вам потребуется доступ к скриптам Office. Если вкладка "Автоматизация" не отображается, ознакомьтесь с разделом Поддержка платформы .

Важно!

Этот учебник предназначен для пользователей с начальным и средним уровнем знаний по JavaScript или TypeScript. Если вы впервые работаете с JavaScript, рекомендуем начать с учебника Mozilla по JavaScript. Чтобы получить дополнительные сведения о среде сценариев, ознакомьтесь со статьей Среда редактора кода сценариев Office.

Добавление данных и запись простого сценария

Во-первых, вам потребуются некоторые данные и небольшой начальный скрипт.

  1. Создайте книгу Excel.

  2. Скопируйте следующие данные о продаже фруктов и вставьте их на лист, начиная с ячейки A1.

    Фрукты 2018 2019
    Апельсины 1000 1200
    Лимоны 800 900
    Лаймы 600 500
    Грейпфруты 900 700
  3. Откройте вкладку Автоматизация. Если вы не видите вкладку Автоматизация, проверьте переполнение ленты, нажав стрелку раскрывающегося списка. Если нужного элемента по-прежнему нет, выполните рекомендации из статьи Устранение неполадок в сценариях Office.

  4. Нажмите кнопку Записать действия.

  5. Выделите ячейки A2:C2 (строка "Апельсины") и установите оранжевый цвет заливки.

  6. Чтобы остановить запись, нажмите кнопку Остановить.

    Ваш лист должен выглядеть, как показано ниже (не волнуйтесь, если цвет отличается):

    Лист, показывающий строку данных о продажах фруктов, причем строка

Редактирование существующего сценария

Предыдущий сценарий окрасил строку "Апельсины" в оранжевый цвет. Добавьте желтую строку для "Лимоны".

  1. В открывшейся области Сведения нажмите кнопку Изменить.

  2. Должен отобразиться примерно такой код:

    function main(workbook: ExcelScript.Workbook) {
      // Set fill color to FFC000 for range Sheet1!A2:C2
      let selectedSheet = workbook.getActiveWorksheet();
      selectedSheet.getRange("A2:C2").getFormat().getFill().setColor("FFC000");
    }
    

    Этот код получает текущий лист из книги. Затем он настраивает цвет заливки диапазона A2:C2.

    Диапазоны — это фундаментальная часть сценариев Office в Excel. Диапазон — это непрерывный прямоугольный блок ячеек, содержащий значения, формулы и форматирование. Они представляют собой базовую структуру ячеек, в которой можно выполнять большинство задач сценариев.

  3. Добавьте следующую строку в конце сценария (между местом настройки значения color и закрывающей скобкой }):

    selectedSheet.getRange("A3:C3").getFormat().getFill().setColor("yellow");
    
  4. Протестируйте сценарий, нажав Запустить. Книга должна выглядеть следующим образом:

    Лист, показывающий строку данных о продажах фруктов, в которой строка

Создание таблицы

Затем преобразуйте эти данные о продажах фруктов в таблицу. Вы будете продолжать изменять первый скрипт для всего учебника.

  1. Добавьте следующую строку в конце сценария (перед закрывающей скобкой }):

    let table = selectedSheet.addTable("A1:C5", true);
    
  2. Этот вызов возвращает объект Table. Используйте таблицу для сортировки данных. Отсортируйте данные в порядке возрастания на основе значений в столбце "Фрукты". Добавьте следующую строку после создания таблицы:

    table.getSort().apply([{ key: 0, ascending: true }]);
    

    Ваш сценарий должен выглядеть так:

    function main(workbook: ExcelScript.Workbook) {
        // Set fill color to FFC000 for range Sheet1!A2:C2
        let selectedSheet = workbook.getActiveWorksheet();
        selectedSheet.getRange("A2:C2").getFormat().getFill().setColor("FFC000");
        selectedSheet.getRange("A3:C3").getFormat().getFill().setColor("yellow");
        let table = selectedSheet.addTable("A1:C5", true);
        table.getSort().apply([{ key: 0, ascending: true }]);
    }
    

    В таблицах есть объект TableSort, доступный с помощью метода Table.getSort. Вы можете применить условия сортировки к этому объекту. Метод apply использует массив объектов SortField. В этом случае у вас есть только один критерий сортировки, поэтому используется только один SortField. Значение key: 0 задает столбец со значениями, определяющими сортировку, равным "0" (это первый столбец в таблице, в данном случае столбец A ). Значение ascending: true сортирует данные по возрастанию (а не по убыванию).

  3. Запустите сценарий. Вы увидите следующую таблицу:

    лист с таблицей продаж отсортированных фруктов.

    Примечание.

    При повторном запуске сценария возникнет ошибка. Это связано с тем, что вы не можете создать таблицу поверх другой таблицы. Однако скрипт можно запустить на другом листе или в другой книге.

Повторный запуск сценария

  1. Создайте лист в текущей книге.
  2. Скопируйте данные фруктов из начала учебника и вставьте их на новый лист, начиная с ячейки A1.
  3. Запустите сценарий.

Дальнейшие действия

Полное руководство. Очистка и нормализация данных книги Excel. С его помощью вы научитесь читать данные из книги с помощью сценариев Office.