问题描述
我有一个Word文档,其中包含几种产品的数据。每个产品都包含一个规格表,我想创建一个Windows应用程序来搜索产品名称并使用c#提取其表数据。
using (var doc = WordprocessingDocument.Open(@"C:\reader\Sample2xml.xml",false))
{
// To create a temporary table
DataTable dt = new DataTable();
int rowCount = 0;
// Find the first table in the document.
Table table = doc.MainDocumentPart.Document.Elements<Table>().First();
// To get all rows from table
IEnumerable<TableRow> rows = table.Elements<TableRow>();
// To read data from rows and to add records to the temporary table
foreach (TableRow row in rows)
{
if (rowCount == 0)
{
foreach (TableCell cell in row.Descendants<TableCell>())
{
dt.Columns.Add(cell.InnerText);
}
rowCount += 1;
}
else
{
dt.Rows.Add();
int i = 0;
foreach (TableCell cell in row.Descendants<TableCell>())
{
dt.Rows[dt.Rows.Count - 1][i] = cell.InnerText;
i++;
}
}
}
我需要做的是搜索产品名称,然后开始范围并获取第一个表,但这给我错误。
解决方法
尝试以下代码选择文档中的第一个表
word.Table tbl = doc.Range(ref doc.Content.Start,ref doc.Content.End).Tables[1];