|
<< Нажмите, чтобы показать Содержание >> Экспорт таблиц |
Таблицы могут быть сохранены вместе с документом в следующих форматах:
▪текст,
▪HTML,
▪RTF,
▪DocX
▪Markdown.
Таблицы имеют свойства:
▪TextRowSeparator – текстовая строка, которая будет записана после каждой строки таблицы;
▪TextColSeparator – текстовая строка, которая будет записана между ячеек таблицы.
По умолчанию, обе строки равны CR+LF (#13#10).
Вы можете установить TextColSeparator равным символу TAB (#09), но учтите, что переносы строк (CR+LF) могут быть внутри ячеек.
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, если этот документ содержит таблицы.
Некоторые свойства таблиц могут быть сохранены только при использовании CSS (с TRichView.HTMLSaveProperties.HTMLSavingType = rvhtmlstNormal,, или rvcsssoForceNonTextCSS в TRichView.HTMLSaveProperties.CSSOptions). См. комментарии в разделах справки о свойствах таблицы.
Основная спецификация Markdown не поддерживает таблицы.
Однако существует расширение Markdown для таблиц. Его можно активировать, добавив опцию rvmdeTables в TRichView.MarkdownProperties.Extensions (включена по умолчанию).
В противном случае содержимое ячеек таблицы сохраняется как обычные абзацы.