Сводная таблица и исходные данные
Исходные данные сводной таблицы
Иногда возникают ситуации, когда вы хотите создать отчеты Microsoft Excel с сводными таблицами, использующими данные из разных источников данных (например, базы данных), которые неизвестны на этапе проектирования. В этой статье представлен подход к динамическому изменению источника данных сводной таблицы.
Изменение исходного источника данных сводной таблицы
- Создание нового файла шаблона дизайнера.
-
Создайте новый файл шаблона дизайнера, как показано на скриншоте ниже.
-
Затем определите именованный диапазон DataSource, который ссылается на этот диапазон ячеек.
Создание файла шаблона дизайнера и определение именованного диапазона DataSource
-
- Создание сводной таблицы на основе этого именованного диапазона.
-
В Microsoft Excel выберите Данные, затем Сводная таблица и Отчет сводной таблицы и диаграмма.
-
Создайте сводную таблицу на основе созданного в первом шаге именованного диапазона.
Создание сводной таблицы на основе именованного диапазона DataSource
-
- Перетащите соответствующее поле на строку и столбец сводной таблицы, затем создайте результирующую сводную таблицу, как показано на скриншоте ниже.
Создание сводной таблицы на основе соответствующего поля
- Щелкните правой кнопкой мыши на сводной таблице и выберите Параметры таблицы.
-
Установите Обновлять при открытии в настройках Параметры данных.
Настройка параметров сводной таблицы
-
Теперь вы можете сохранить этот файл как файл вашего дизайнерского шаблона.
- Пополнение новыми данными и изменение исходных данных сводной таблицы.
- После создания дизайнерского шаблона используйте следующий код для изменения исходных данных сводной таблицы.
Исполнение приведенного ниже примера кода изменяет исходные данные сводной таблицы.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
string InputPath = dataDir + "Book1.xlsx"; | |
// Creating a file stream containing the Excel file to be opened | |
FileStream fstream = new FileStream(InputPath, FileMode.Open); | |
// Opening the Excel file through the file stream | |
Workbook workbook = new Workbook(fstream); | |
// Accessing the first worksheet in the Excel file | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Populating new data to the worksheet cells | |
worksheet.Cells["A9"].PutValue("Golf"); | |
worksheet.Cells["B9"].PutValue("Qtr4"); | |
worksheet.Cells["C9"].PutValue(7000); | |
// Changing named range "DataSource" | |
Range range = worksheet.Cells.CreateRange(0, 0, 9, 3); | |
range.Name = "DataSource"; | |
// Saving the modified Excel file | |
workbook.Save(dataDir + "output.xls"); | |
// Closing the file stream to free all resources | |
fstream.Close(); |