Заполнение таблицы в Word - C#
Формулировка задачи:
ПОМОГИТЕ ПОЖАЛУЙСТА! Столкнулся с задачей заполнения таблицы в word (подключил
using Microsoft.Office.Interop.Word; using Word = Microsoft.Office.Interop.Word, может нужно еще что-то подключить для работы с таблицами?) . Далее нашел часть кода обратиться к нужной таблице по индексу,но проблема в том что он мне подкчеркивает Tables,почему не понимаю
Word.Table newTable = this.Tables[1];
И самое главное как мне внести данные в таблицу саму переходя по ячейкам?Заранее благодарю
Нашел ещё часть кода,но о5 же после this подчеркивание
Листинг программы
- var Wref = this.Application.ActiveDocument;
- Word.Range x = this.Application.Selection.Range;
- Wref.Tables.Add(rng, 4, 4, Type.Missing, Type.Missing);
- Wref.Tables[1].Cell(1, 1).Range.InsertAfter("v");
Решение задачи: «Заполнение таблицы в Word»
textual
Листинг программы
- private static void ReplaceTableContent(Table tableContainer, XElement xTable)
- {
- // Эти части будут оставлены
- var tableGrid = tableContainer.GetFirstChild<TableGrid>();
- var tableProperties = tableContainer.GetFirstChild<TableProperties>();
- // Ширина таблицы как суммарная ширина колонок
- var tableWidth = tableGrid.Elements<GridColumn>().Sum(x => Convert.ToInt32(x.Width));
- // Колонки
- var columnNames = xTable
- .Element("columns")
- .Elements()
- .Select(x => new { Path = x.Name, Text = x.Value });
- int columnWidth = Convert.ToInt32(Math.Floor((Convert.ToDouble(tableWidth) / Convert.ToDouble(columnNames.Count()))));
- // Замена списка колонок
- {
- tableGrid.RemoveAllChildren<GridColumn>();
- tableGrid.Append(columnNames.Select(x => new GridColumn() { Width = Convert.ToString(columnWidth) }));
- }
- // В первой строке заголовок
- {
- var firstRow = tableContainer.GetFirstChild<TableRow>();
- var firstCell = firstRow.GetFirstChild<TableCell>();
- var paragraph = firstCell.GetFirstChild<Paragraph>();
- var firstCellProperties = firstCell.GetFirstChild<TableCellProperties>();
- var firstCellSpan = firstCellProperties.GetFirstChild<GridSpan>();
- if (firstCellSpan == null)
- {
- firstCellSpan = firstCellProperties.AppendChild(new GridSpan());
- }
- firstCellSpan.Val = columnNames.Count();
- paragraph.RemoveAllChildren();
- paragraph.Append(new Run(new Text((string)xTable.Element("caption"))));
- }
- // Перезапись значений в строках
- {
- var xRowset = xTable.Element("rowset");
- var firstRow = tableContainer.GetFirstChild<TableRow>();
- var row = firstRow;
- // Цикл по строкам в Xml
- foreach (var xRow in xRowset.Elements("row"))
- {
- row = row.NextSibling<TableRow>();
- if (row == null)
- {
- row = tableContainer.AppendChild(new TableRow());
- }
- // Очистка возможно имевшихся ячеек (вместе со свойствами)
- row.RemoveAllChildren<TableCell>();
- row.Append(
- columnNames.Select(x =>
- new TableCell(
- new TableCellProperties(
- new TableCellWidth() { Width = Convert.ToString(columnWidth) }),
- new Paragraph(
- new Run(
- new Text((string)xRow.Element(x.Path)))))));
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д