Выбрать уже существующую таблицу внутри документа можно по ее порядковому номеру (начиная с 1 и начала документа) можно через интерфейс Tables. При этом мы получим объект типа Table
Word.Table _table = _document.Tables[tableNumber];
Новая вставляется методом Tables.Add (предполагается что мы уже получили диапазон _currentRange того места в документе, куда будем ее вставлять):
_table = _document.Tables.Add(_currentRange, numRows, numColumns, ref _missingObj, ref _missingObj);
и добавить к ней строки
_table.Rows.Add(ref _missingObj);
Тип границ для таблицы можно задать так:
_table.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleDouble; _table.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleDouble;
Имея таблицу мы можем получить диапазон для конкретной ячейки по номеру строки/колонки через интерфейс Cell и делать с ним все описанное в предыдущих статьях:
_currentRange = _table.Cell(rowIndex, columnIndex).Range;
В том числе задать вертикальное выравнивание через перечисление WdCellVerticalAlignment
_table.Cell(rowIndex, columnIndex).VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalTop;
Слить несколько ячеек в одну
_table.Rows[cellOneRowIndex].Cells[cellOneColIndex]. Merge(_table.Rows[cellTwoRowIndex].Cells[cellTwoColIndex]);
Или объединить все ячейки для строки
Word.Row row = _table.Rows[rowNum]; Word.Cell firstCell =row.Cells[1]; foreach(Word.Cell currCell in row.Cells) { if(currCell.ColumnIndex != firstCell.ColumnIndex) { firstCell.Merge(currCell); } }
- Работаем с MS Word из C#, часть 0, класс и тестовый проект-пример WinForms
- Работаем с MS Word из C#, часть 1. Открываем шаблон, ищем текст внутри документа
- Работаем с MS Word из C#, часть 2. Вставляем текст на закладку и форматируем
- Работаем с MS Word из C#, часть 3. Работа с таблицами
- Работаем с MS Word из C#, часть 4. Обьединяем несколько файлов в один, считаем количество страниц
- Microsoft.Office.Interop.Word Namespace
- Range Interface
- Rows Interface
Добрый день!
Очень помог ваши статьи в разработки авто документаций!...
Очень интересно как добавлять значение в ячейки,которые объединены по вертикали?
Благодарю за ответ
Здравствуйте, пытаюсь самостоятельно разработать сервис генерации билетов, использую Вашу статью, помогла, но возникли вопросы, не все понятно. Мжно ли как то с Вами связаться?
Работа на дому официальное трудоустройство.
Подскажите как при экспорте данных из Datagridview в таблицу документа Word, изменить цвет строки, у которой в первом столбце таблицы Word отсутствуют значения/текст.