Страница 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);
Спасибо.