Экспорт таблиц в Word

Обсуждение Stimulsoft Reports.NET
Ответить
nnspu
Сообщения: 9
Зарегистрирован: 11 фев 2015, 16:22

Экспорт таблиц в Word

Сообщение nnspu »

Добрый день!
Столкнулся с проблемой экспорта отчета в Word.
Отчет содержит одну таблицу. При экспорте в Word таблица разбивается на таблицы - на каждой странице по своей таблице.
Это влечет за собой две проблемы:
1. Таблицы иногда съезжают со своей страницы на другую(см пример)
2. При редактировании итогового отчета в Word(изменение содержимого в таблице) таблицы начинают съезжать на другие страницы. Сразу становится видно, что в документе не одна глобальная таблица.

Есть ли возможность экспорта одной сплошной таблицы в Word без ее разрыва?

Во вложении пример отчета и результата в Word
Вложения
Report.docx
(6.72 КБ) 326 скачиваний
Report.mrt
(4.49 КБ) 491 скачивание
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Экспорт таблиц в Word

Сообщение HighAley »

Здравствуйте.

Отчёт экспортируется в Word одной таблицей.
Если экспортировать с опцией Remove Empty Space at Bottom of Page.

Также вы можете установить у страницы шаблона свойства Unlimited Height в True и Unlimited Breakable в False.

Спасибо.
nnspu
Сообщения: 9
Зарегистрирован: 11 фев 2015, 16:22

Re: Экспорт таблиц в Word

Сообщение nnspu »

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

1) Report.docx - отчет выгружен как есть без каких-либо дополнительных опций. Выгружен практически так, как надо, за исключением того, что таблица составная, как я писал выше. Обратите внимание, что Группа 4, состоящая из элементов 16, 17, 18 и 19 разрывается страницей. Вот с этой группой и начинаются проблемы, если мы начинаем играть предложенными вами опциями.

2) При экспорте в Word включаем опцию Remove Empty Space at Bottom of Page. В результате получаем файл Report2.docx.
- От титульного листа осталась только одна надпись, за которой сразу идет таблица. В моем случае титульный лист все таки нужен, неплохо было бы предусмотреть функцию обрезке свободного места индивидуально для каждой страницы.
- Таблица, как и обещалось, стала единой. Однако, если посмотрим на группу 4, то видно что она стала разбитой на две группы(по-видимому, группа элементов 16,17 с одной страницы Report1 и группа элементов группа элементов 18,19 с другой). Лишняя группа может ввести в заблуждение рядового пользователя отчетов

3) Для страницы с таблицей устанавливаем свойства Unlimited Height в True и Unlimited Breakable в False. В итоге получаем файл Report3.docx. Что сталось с группой 4 при переносе на новую страницу проще посмотреть, открыть файл, чем описывать.
Вложения
Report3.docx
Отчет с выставленными Unlimited Height в True и Unlimited Breakable в False
(7.17 КБ) 338 скачиваний
Report2.docx
Отчет с Remove Empty Space at Bottom of Page
(7.05 КБ) 328 скачиваний
Report1.docx
Отчет без дополнительных опций
(7.1 КБ) 289 скачиваний
Report.mrt
Шаблон отчета
(6.08 КБ) 460 скачиваний
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Re: Экспорт таблиц в Word

Сообщение Ivan »

Здравствуйте.

Попробуйте сделать следующее:
- у первой страницы шаблона TitulPage в свойстве ExcelSheet вписать TitulPage.
- у второй страницы шаблона установить Unlimited Height = true и Unlimited Breakable = false.
- установить статическое свойство StiOptions.Export.Word.DivideSegmentPages = false;
- в настройках экспорта установить галочку UsePageHeadersAndFooters.

Спасибо.
nnspu
Сообщения: 9
Зарегистрирован: 11 фев 2015, 16:22

Re: Экспорт таблиц в Word

Сообщение nnspu »

Добрый день!
Ваши рекомендации помогли. Теперь в word экспортируется именно так, как требуется
Спасибо!
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Экспорт таблиц в Word

Сообщение HighAley »

Здравствуйте.

Мы всегда рады вам помочь.
Ваш реальный пример очень помог решить проблему.
Обращайтесь, если ещё нужна наша помощь.

Спасибо.
nnspu
Сообщения: 9
Зарегистрирован: 11 фев 2015, 16:22

Re: Экспорт таблиц в Word

Сообщение nnspu »

Добрый день!
В этом же отчете имею установленные опции:
Для страницы:
Unlimited Height = True
Unlimited Breakable = False
Ориентация страницы - альбомная

Ориентация страницы при экспорте в Word становится портретной в случае, если устанавливаем StiOptions.Export.Word.DivideSegmentPages = false.
Если же такую настройку экспорта не производить, ориентация страницы сохраняется
Aleksey
Сообщения: 2907
Зарегистрирован: 22 апр 2010, 06:57

Re: Экспорт таблиц в Word

Сообщение Aleksey »

Здравствуйте,

Не можем воспроизвести проблему. Нужен пример отчета для анализа.

Спасибо.
nnspu
Сообщения: 9
Зарегистрирован: 11 фев 2015, 16:22

Re: Экспорт таблиц в Word

Сообщение nnspu »

Добрый день,
прикладываю шаблон отчета и результат экспорта в word и pdf.
Данные для отчета заполняются в коде шаблона отчета.

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

	
	var report = new StiReport();
	report.Load(@"D:\temp\ErrorReport.mrt");
	StiOptions.Export.Word.DivideSegmentPages = false;
	StiOptions.Export.Word.RemoveEmptySpaceAtBottom = false;
	report.Render();
	report.ExportDocument(StiExportFormat.Word2007, @"D:\testReport.docx");
	report.ExportDocument(StiExportFormat.Pdf, @"D:\testReport.pdf");
Как можно увидеть, в файле pdf ориентация страницы альбомная, как и в шаблоне, а вот в файле docx ориентация портретная.
Вложения
Result.zip
(67.55 КБ) 270 скачиваний
ErrorReport.mrt
(7.83 КБ) 271 скачивание
Ivan
Сообщения: 641
Зарегистрирован: 10 авг 2006, 05:40
Откуда: Stimulsoft Office

Re: Экспорт таблиц в Word

Сообщение Ivan »

Здравствуйте.
Как можно увидеть, в файле pdf ориентация страницы альбомная, как и в шаблоне, а вот в файле docx ориентация портретная.
Тут вы столкнулись с одной особенностью экспорта.
Если свойство UsePageHeadersAndFooters выключено - то экспорт пытается сохранить вид отчёта в превью.
При этом, если есть сегменты (DivideSegmentPages = false) то высота страницы в Word устанавливается с учётом сегментов.
Т.е. в вашем случае 5 страниц -> более 100 см. Правда, в Word максимальные размеры страницы 55*55см, поэтому получаются страницы 27*55см.

Если свойство UsePageHeadersAndFooters включить - то экспорт будет в виде "ленты", где высота строк задана не строго, т.е. содержимое "перетекает" со страницы на страницу как обычный документ.
Размеры страниц в этом случае задаются без учета сегментов.

Т.е. вам необходимо включить опцию UsePageHeadersAndFooters в настройках экспорта, например так:

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

	
	var report = new StiReport();
	report.Load(@"D:\temp\ErrorReport.mrt");
	StiOptions.Export.Word.DivideSegmentPages = false;
	StiOptions.Export.Word.RemoveEmptySpaceAtBottom = false;
	report.Render();
        StiWord2007ExportSettings wes = new StiWord2007ExportSettings();
        wes.UsePageHeadersAndFooters = true;
	report.ExportDocument(StiExportFormat.Word2007, @"D:\testReport.docx", wes);
Спасибо.
Ответить