如何从docx文档中提取特定数据

问题描述

我有一个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];