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

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

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

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

Во вложении пример отчета и результата в Word

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

Добавлено: 15 янв 2016, 10:32
HighAley
Здравствуйте.

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

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

Спасибо.

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

Добавлено: 15 янв 2016, 15:00
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 при переносе на новую страницу проще посмотреть, открыть файл, чем описывать.

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

Добавлено: 18 янв 2016, 17:01
Ivan
Здравствуйте.

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

Спасибо.

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

Добавлено: 20 янв 2016, 14:45
nnspu
Добрый день!
Ваши рекомендации помогли. Теперь в word экспортируется именно так, как требуется
Спасибо!

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

Добавлено: 20 янв 2016, 16:38
HighAley
Здравствуйте.

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

Спасибо.

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

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

Ориентация страницы при экспорте в Word становится портретной в случае, если устанавливаем StiOptions.Export.Word.DivideSegmentPages = false.
Если же такую настройку экспорта не производить, ориентация страницы сохраняется

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

Добавлено: 25 май 2020, 10:52
Aleksey
Здравствуйте,

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

Спасибо.

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

Добавлено: 25 май 2020, 17:44
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 ориентация портретная.

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

Добавлено: 26 май 2020, 16:11
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);
Спасибо.