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

<< Нажмите, чтобы показать Содержание >>

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

Таблицы могут быть сохранены вместе с документом в следующих форматах:

текст,

HTML,

RTF,

DocX

Markdown.

Текст

Таблицы имеют свойства:

TextRowSeparator текстовая строка, которая будет записана после каждой строки таблицы;

TextColSeparator текстовая строка, которая будет записана между ячеек таблицы.

По умолчанию, обе строки равны CR+LF (#13#10).

Вы можете установить TextColSeparator равным символу TAB (#09), но учтите, что переносы строк (CR+LF) могут быть внутри ячеек.

RTF и DocX

TRichView сохраняет таблицы в формате RTF в соответствии со стандартом MS Word 2000+. В MS Word 2000 было введено множество новых ключевых слов RTF для сохранения форматирования, подобного HTML.

Аналогичные ключевые слова сохраняются в файлах DocX.

MS Word поддерживает два алгоритма расчёта ширины столбцов: фиксированный и подгоняемый по содержимому. Начальная ширина столбцов таблицы, указанная в RTF/DocX (называемая «сеткой таблицы»), корректируется MS Word в соответствии с указанным алгоритмом. Алгоритм учитывает содержимое и ширину ячеек.

По умолчанию TRichView сохраняет таблицы как фиксированные. Как правило, фиксированные таблицы MS Word выглядят ближе к таблицам TRichView; однако есть некоторые проблемы. Например, если мы сохраним точные значения Cells[r,c].BestWidth (указанные в твипах, EMU или пикселях), MS Word установит ширину этих ячеек равной этим значениям, поэтому широкое содержимое может быть обрезано. Поэтому TRichView не сохраняет эти значения в RTF/DocX. Таким образом, после сохранения, ячейки с BestWidth = 0 и BestWidth > 0 неотличимы друг от друга, их ширина берётся из сетки таблицы (которая сохраняется TRichView в соответствии с размером таблицы в документе). Вы можете включить сохранение BestWidth ячеек, добавив rvtoRTFSaveCellPixelBestWidth в table.Options; однако это не рекомендуется для таблиц фиксированного размера.

Если вы добавите rvtoRTFAllowAutofit в table.Options, эта таблица будет сохранена как таблица, подогнана по содержимому (но только если table.BestWidth=0). Для таких таблиц вы можете смело добавить rvtoRTFSaveCellPixelBestWidth в table.Options.

При сохранении сетки таблицы в RTF/DocX, TRichView использует текущий размер таблицы в документе. Поэтому TRichView необходимо форматировать перед сохранением в RTF/DocX, если этот документ содержит таблицы.

HTML

Некоторые свойства таблиц могут быть сохранены только при использовании CSS (с TRichView.HTMLSaveProperties.HTMLSavingType = rvhtmlstNormal,, или rvcsssoForceNonTextCSS в TRichView.HTMLSaveProperties.CSSOptions). См. комментарии в разделах справки о свойствах таблицы.

Markdown

Основная спецификация Markdown не поддерживает таблицы.

Однако существует расширение Markdown для таблиц. Его можно активировать, добавив опцию rvmdeTables в TRichView.MarkdownProperties.Extensions (включена по умолчанию).

В противном случае содержимое ячеек таблицы сохраняется как обычные абзацы.

См. также...

Методы TRichView для сохранения и загрузки