Заполнение таблицы в 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))))))); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д