Страница 1 из 1

Image. Экспорт в Excel.

Добавлено: 18 апр 2019, 08:59
Леонид
Добрый день, коллеги!

Подскажите, как сделать так, чтобы при экспорте в Excel компонента Image установить свойство каждого изображения "Перемещать и изменять объект вместе с ячейками" (Excel)?
На данный момент по умолчанию при экспорте изображений установлено свойство "Перемещать, но не изменять размеры".

Re: Image. Экспорт в Excel.

Добавлено: 23 апр 2019, 14:20
Aleksey
Здравствуйте,

Добавили опцию:
StiOptions.Export.Excel.ImageMoveAndSizeWithCells

Будет в следующем билде.

Спасибо.

Re: Image. Экспорт в Excel.

Добавлено: 23 апр 2019, 14:26
Леонид
Отлично!

Примерно когда можно ожидать билд?

Re: Image. Экспорт в Excel.

Добавлено: 24 апр 2019, 07:22
Andrew
Здравствуйте, Леонид.

Я думаю в течение 2-х - 3-х недель. Точно не раньше.

Спасибо.

Re: Image. Экспорт в Excel.

Добавлено: 12 авг 2019, 13:45
Леонид
Проверили на версии "Stimulsoft Reports.Net 2019.3.1".
Всё работает как нужно с флагом StiOptions.Export.Excel.ImageMoveAndSizeWithCells = true.
Спасибо!

Re: Image. Экспорт в Excel.

Добавлено: 13 авг 2019, 07:21
Aleksey
Здравствуйте,

Отлично. Дайте знать, если будут еще вопросы.

Спасибо.

Re: Image. Экспорт в Excel.

Добавлено: 29 ноя 2019, 13:31
Леонид
Коллеги, добрый день!

Подскажите, пожалуйста по флагу StiOptions.Export.Excel.ImageMoveAndSizeWithCells.
Да, он работает, но когда мы рендерим отчёт, а потом сохраняем Excel файл из меню, то всё работает.

Но почему-то когда

// create report
StiReport stiReport = new StiReport()
{
ReportAlias = reportCaption,
ReportName = reportCaption,
IsRendered = false
};
...

// set Excel export settings
StiExportSettings exportSettings = new StiExcel2007ExportSettings()
{
ImageQuality = 100,
ImageResolution = 500,
};

StiOptions.Export.Excel.ImageMoveAndSizeWithCells = true; <--- ставим флаг

// export report to stream
stiReport.ExportDocument(StiExportFormat.Excel, ms, exportSettings); <-- но при экспорте этой процедурой он не работает

// save stream to file
using (FileStream file = new FileStream(exportFileName, FileMode.Create, FileAccess.Write))
{
ms.WriteTo(file);
}

Re: Image. Экспорт в Excel.

Добавлено: 03 дек 2019, 07:50
Леонид
Коллеги, добрый день!

Перепробовал все варианты, - нашёл рабочий.
Необходимо создать StiExcelExportService, а затем экспортировать методом .ExportTo() этой службы (StiExcelExportService).
Вопрос решён.

Вот рабочий сниппет, если кому-то понадобится:

Код: Выделить всё

        // render report
        stiReport.Render(false);

        // create stream
        using (MemoryStream ms = new MemoryStream())
        {
          StiOptions.Export.Excel.ImageMoveAndSizeWithCells = true;

          // set Excel export settings
          StiExportSettings exportSettings = new StiExcel2007ExportSettings()
          {
            ImageQuality = imageQuality, // Качество изображения: 25, 50, 75, 100
            ImageResolution = imageResolution // Разрешение изображения: 10, 25, 50, 75, 100, 200, 300, 400, 500
          };

          // export report to stream
          StiExcelExportService exportSrv = new StiExcelExportService(); <--- создаём экземпляр сервиса
          exportSrv.ExportTo(stiReport, ms, exportSettings); <--- экспортируем в .xlsx

          // delete existing file
          if (File.Exists(exportFileName))
            File.Delete(exportFileName);

          // save stream to file
          using (FileStream file = new FileStream(exportFileName, FileMode.Create, FileAccess.Write))
          {
            ms.WriteTo(file);
          }
        }

Re: Image. Экспорт в Excel.

Добавлено: 03 дек 2019, 08:01
Andrew
Здравствуйте,

Спасибо, что выложили решение здесь. Будет очень полезно всем.

Еще раз спасибо.