Как я могу контролировать ширину столбца таблицы в документах Word, используя DocX?
Я пытаюсь воссоздать таблицу следующим образом:
Я использую библиотеку DocX для работы с файлами Word, но у меня возникают проблемы с правильной шириной. Попытка установить ширину ячеек, кажется, работает только тогда, когда он не установлен в режим автоматической подгонки окна, и он, кажется, изменяет размер, только когда указанная ширина больше половины ширины таблицы, или, скорее, я могу сделать ячейку больше, чем на половину ширины, но не меньше.
Какой самый простой способ воспроизвести намеченную таблицу?
4 ответа
Я нашел ответ на это сам. Чтобы правильно установить ширину, вы должны пройти через каждую ячейку в столбце и установить каждую ширину. Это не будет работать с выбранными параметрами автоподбора.
Попробуй это:
Table table = doc.AddTable(2, 2);
table.SetColumnWidth(0, 500);
//first is column index, the second is column width
Это способ:
Table t = doc.AddTable(1, 5);
t.SetWidthsPercentage(new[] { 20f, 20f, 40f, 10f, 10f }, 500);
Массив float устанавливает процент ширины для каждого из столбцов, второй параметр - общая ширина таблицы.
Немного старого поста для тега, но после возникновения той же проблемы может показаться, что ни одна из ширины ни ячеек, ни столбцов на самом деле не работает, так что в качестве грязного обходного пути вы можете перебрать каждый столбец и ячейку, добавляя текст к каждому из ячеек, сделайте текст белым и, наконец, используйте опцию автоподбора для автоподбора содержимого, например.
Table t2 = doc.AddTable(2, 8);
for (int i = 0; i < t2.RowCount; i ++)
{
for(int x = 0; x < t2.ColumnCount; x++)
{
t2.Rows[i].Cells[x].Paragraphs.First().Append("12").Color(Color.White);
}
}
t2.AutoFit = AutoFit.Contents;
doc.InsertTable(t2);