Экспорт в Excel работает очень медленно
Добавлено: 24 июн 2021, 17:18
Здравствуйте,
У нас зарегистрированная версия пакета "stimulsoft-reports-js": "2018.2.3".
При экспорте отчета в Excel метод exportToAsync работает очень медленно.
При настройках экспорта:
let settings = new Stimulsoft.Report.Export.StiExcel2007ExportSettings();
exportToAsync работает несколько минут.
Как только добавляем к настройкам useOnePageHeaderAndFooter:
let settings = new Stimulsoft.Report.Export.StiExcel2007ExportSettings();
settings.useOnePageHeaderAndFooter = true;
exportToAsync работает 1 час кроме того в результирующем файле "разбухают" ячейки по высоте.
Настройка useOnePageHeaderAndFooter нам нужна, т.к. заказчик просит показывать Excel таблицу без биения на страницы.
Подскажите, что можно сделать с настройками, чтобы экспорт работал быстрее?
У нас зарегистрированная версия пакета "stimulsoft-reports-js": "2018.2.3".
При экспорте отчета в Excel метод exportToAsync работает очень медленно.
При настройках экспорта:
let settings = new Stimulsoft.Report.Export.StiExcel2007ExportSettings();
exportToAsync работает несколько минут.
Как только добавляем к настройкам useOnePageHeaderAndFooter:
let settings = new Stimulsoft.Report.Export.StiExcel2007ExportSettings();
settings.useOnePageHeaderAndFooter = true;
exportToAsync работает 1 час кроме того в результирующем файле "разбухают" ячейки по высоте.
Настройка useOnePageHeaderAndFooter нам нужна, т.к. заказчик просит показывать Excel таблицу без биения на страницы.
Подскажите, что можно сделать с настройками, чтобы экспорт работал быстрее?
Код: Выделить всё
let report = new Stimulsoft.Report.StiReport();
report.load(template);
let settings = new Stimulsoft.Report.Export.StiExcel2007ExportSettings();
settings.useOnePageHeaderAndFooter = true;
let service = new Stimulsoft.Report.Export.StiExcel2007ExportService();
let stream;
stream = new Stimulsoft.System.IO.MemoryStream();
await new Promise((resolve, reject) => {
report.renderAsync(function () {
try {
service.exportToAsync(function () {
try {
fs.writeFileSync(fileName, Buffer.from(stream.toArray()));
resolve();
}
catch (err) {
reject(err);
}
}, report, stream, settings);
}
catch (err) {
reject(err);
}
}, false);
});