Сводная таблица и исходные данные
Исходные данные сводной таблицы
Иногда возникают ситуации, когда вы хотите создать отчеты Microsoft Excel с сводными таблицами, использующими данные из разных источников данных (например, базы данных), которые неизвестны на этапе проектирования. В этой статье представлен подход к динамическому изменению источника данных сводной таблицы.
Изменение исходного источника данных сводной таблицы
- Создание нового файла шаблона дизайнера.
-
Создайте новый файл шаблона дизайнера, как показано на скриншоте ниже.
-
Затем определите именованный диапазон DataSource, который ссылается на этот диапазон ячеек.
Создание файла шаблона дизайнера и определение именованного диапазона DataSource
-
- Создание сводной таблицы на основе этого именованного диапазона.
-
В Microsoft Excel выберите Данные, затем Сводная таблица и Отчет сводной таблицы и диаграмма.
-
Создайте сводную таблицу на основе созданного в первом шаге именованного диапазона.
Создание сводной таблицы на основе именованного диапазона DataSource
-
- Перетащите соответствующее поле на строку и столбец сводной таблицы, затем создайте результирующую сводную таблицу, как показано на скриншоте ниже.
Создание сводной таблицы на основе соответствующего поля
- Щелкните правой кнопкой мыши на сводной таблице и выберите Параметры таблицы.
-
Установите Обновлять при открытии в настройках Параметры данных.
Настройка параметров сводной таблицы
-
Теперь вы можете сохранить этот файл как файл вашего дизайнерского шаблона.
- Пополнение новыми данными и изменение исходных данных сводной таблицы.
- После создания дизайнерского шаблона используйте следующий код для изменения исходных данных сводной таблицы.
Исполнение приведенного ниже примера кода изменяет исходные данные сводной таблицы.
const AsposeCells = require("aspose.cells.node"); | |
//The path to the documents directory. | |
var dataDir = RunExamples.GetDataDir("."); | |
var InputPath = dataDir + "Book1.xlsx"; | |
//Instantiating a Workbook object | |
var workbook = new AsposeCells.Workbook(InputPath); | |
//Accessing the first worksheet in the Excel file | |
var worksheet = workbook.getWorksheets().get(0) | |
//Populating new data to the worksheet cells | |
worksheet.getCells().get("A9").putValue("Golf"); | |
worksheet.getCells().get("B9").putValue("Qtr4"); | |
worksheet.getCells().get("C9").putValue(7000); | |
//Changing named range "DataSource" | |
var range = worksheet.getCells().createRange(0, 0, 9, 3); | |
range.setName("DataSource"); | |
//Saving the modified Excel file | |
workbook.save(dataDir + "output.xls"); | |