Экспорт таблиц в Word
Экспорт таблиц в Word
Добрый день!
Столкнулся с проблемой экспорта отчета в Word.
Отчет содержит одну таблицу. При экспорте в Word таблица разбивается на таблицы - на каждой странице по своей таблице.
Это влечет за собой две проблемы:
1. Таблицы иногда съезжают со своей страницы на другую(см пример)
2. При редактировании итогового отчета в Word(изменение содержимого в таблице) таблицы начинают съезжать на другие страницы. Сразу становится видно, что в документе не одна глобальная таблица.
Есть ли возможность экспорта одной сплошной таблицы в Word без ее разрыва?
Во вложении пример отчета и результата в Word
Столкнулся с проблемой экспорта отчета в Word.
Отчет содержит одну таблицу. При экспорте в Word таблица разбивается на таблицы - на каждой странице по своей таблице.
Это влечет за собой две проблемы:
1. Таблицы иногда съезжают со своей страницы на другую(см пример)
2. При редактировании итогового отчета в Word(изменение содержимого в таблице) таблицы начинают съезжать на другие страницы. Сразу становится видно, что в документе не одна глобальная таблица.
Есть ли возможность экспорта одной сплошной таблицы в Word без ее разрыва?
Во вложении пример отчета и результата в Word
- Вложения
-
- Report.docx
- (6.72 КБ) 326 скачиваний
-
- Report.mrt
- (4.49 КБ) 490 скачиваний
Re: Экспорт таблиц в Word
Здравствуйте.
Отчёт экспортируется в Word одной таблицей.
Если экспортировать с опцией Remove Empty Space at Bottom of Page.
Также вы можете установить у страницы шаблона свойства Unlimited Height в True и Unlimited Breakable в False.
Спасибо.
Отчёт экспортируется в Word одной таблицей.
Если экспортировать с опцией Remove Empty Space at Bottom of Page.
Также вы можете установить у страницы шаблона свойства Unlimited Height в True и Unlimited Breakable в False.
Спасибо.
Re: Экспорт таблиц в Word
В моем случае отчет немного более сложный, чем просто одна таблица
Отчет состоит из шаблона титульной страницы и и шаблона страницы с таблицей из двух колонок, одна из которых группируется по некоторому признаку
Прикладываю новые примеры:
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 при переносе на новую страницу проще посмотреть, открыть файл, чем описывать.
Отчет состоит из шаблона титульной страницы и и шаблона страницы с таблицей из двух колонок, одна из которых группируется по некоторому признаку
Прикладываю новые примеры:
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 КБ) 337 скачиваний
-
- Report2.docx
- Отчет с Remove Empty Space at Bottom of Page
- (7.05 КБ) 328 скачиваний
-
- Report1.docx
- Отчет без дополнительных опций
- (7.1 КБ) 289 скачиваний
-
- Report.mrt
- Шаблон отчета
- (6.08 КБ) 458 скачиваний
Re: Экспорт таблиц в Word
Здравствуйте.
Попробуйте сделать следующее:
- у первой страницы шаблона TitulPage в свойстве ExcelSheet вписать TitulPage.
- у второй страницы шаблона установить Unlimited Height = true и Unlimited Breakable = false.
- установить статическое свойство StiOptions.Export.Word.DivideSegmentPages = false;
- в настройках экспорта установить галочку UsePageHeadersAndFooters.
Спасибо.
Попробуйте сделать следующее:
- у первой страницы шаблона TitulPage в свойстве ExcelSheet вписать TitulPage.
- у второй страницы шаблона установить Unlimited Height = true и Unlimited Breakable = false.
- установить статическое свойство StiOptions.Export.Word.DivideSegmentPages = false;
- в настройках экспорта установить галочку UsePageHeadersAndFooters.
Спасибо.
Re: Экспорт таблиц в Word
Добрый день!
Ваши рекомендации помогли. Теперь в word экспортируется именно так, как требуется
Спасибо!
Ваши рекомендации помогли. Теперь в word экспортируется именно так, как требуется
Спасибо!
Re: Экспорт таблиц в Word
Здравствуйте.
Мы всегда рады вам помочь.
Ваш реальный пример очень помог решить проблему.
Обращайтесь, если ещё нужна наша помощь.
Спасибо.
Мы всегда рады вам помочь.
Ваш реальный пример очень помог решить проблему.
Обращайтесь, если ещё нужна наша помощь.
Спасибо.
Re: Экспорт таблиц в Word
Добрый день!
В этом же отчете имею установленные опции:
Для страницы:
Unlimited Height = True
Unlimited Breakable = False
Ориентация страницы - альбомная
Ориентация страницы при экспорте в Word становится портретной в случае, если устанавливаем StiOptions.Export.Word.DivideSegmentPages = false.
Если же такую настройку экспорта не производить, ориентация страницы сохраняется
В этом же отчете имею установленные опции:
Для страницы:
Unlimited Height = True
Unlimited Breakable = False
Ориентация страницы - альбомная
Ориентация страницы при экспорте в Word становится портретной в случае, если устанавливаем StiOptions.Export.Word.DivideSegmentPages = false.
Если же такую настройку экспорта не производить, ориентация страницы сохраняется
Re: Экспорт таблиц в Word
Здравствуйте,
Не можем воспроизвести проблему. Нужен пример отчета для анализа.
Спасибо.
Не можем воспроизвести проблему. Нужен пример отчета для анализа.
Спасибо.
Re: Экспорт таблиц в Word
Добрый день,
прикладываю шаблон отчета и результат экспорта в word и pdf.
Данные для отчета заполняются в коде шаблона отчета.
Как можно увидеть, в файле pdf ориентация страницы альбомная, как и в шаблоне, а вот в файле docx ориентация портретная.
прикладываю шаблон отчета и результат экспорта в 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");
- Вложения
-
- Result.zip
- (67.55 КБ) 270 скачиваний
-
- ErrorReport.mrt
- (7.83 КБ) 270 скачиваний
Re: Экспорт таблиц в Word
Здравствуйте.
Если свойство UsePageHeadersAndFooters выключено - то экспорт пытается сохранить вид отчёта в превью.
При этом, если есть сегменты (DivideSegmentPages = false) то высота страницы в Word устанавливается с учётом сегментов.
Т.е. в вашем случае 5 страниц -> более 100 см. Правда, в Word максимальные размеры страницы 55*55см, поэтому получаются страницы 27*55см.
Если свойство UsePageHeadersAndFooters включить - то экспорт будет в виде "ленты", где высота строк задана не строго, т.е. содержимое "перетекает" со страницы на страницу как обычный документ.
Размеры страниц в этом случае задаются без учета сегментов.
Т.е. вам необходимо включить опцию UsePageHeadersAndFooters в настройках экспорта, например так:
Спасибо.
Тут вы столкнулись с одной особенностью экспорта.Как можно увидеть, в файле 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);