如何使用C#在特定标题旁边的word文档中获取MS Word表?

时间:2018-02-15 07:36:10

标签: c# .net ms-word

我正在尝试使用c#在单词表中的相应列下标识特定值。尝试: 1-如果已知表索引 - 将表范围作为文本并迭代它以到达某个行和列。

问题是 - 表格位于文档中任何位置的特定标题下。索引是可变的,因此不能依赖索引。

1 个答案:

答案 0 :(得分:0)

正如辛迪指出的那样,目前形式的问题过于宽泛。我不确定你是如何阅读你的文件的。另外,我不确定你的意思是什么"某些标题",你知道在目标表之前会有什么文字吗?

尽管如此,您可以查看以下示例,代码使用GemBox.Document

string cellValue = null;

string headingText = "My Heading Text";
int rowIndex = 0;
int columnIndex = 0;

// Load Word document.
DocumentModel document = DocumentModel.Load("Sample.docx");

// Iterate through all paragraphs.
foreach (Paragraph paragraph in document.GetChildElements(true, ElementType.Paragraph))
{
    // Check that paragraph is of heading style.
    ParagraphStyle style = paragraph.ParagraphFormat.Style;
    if (style == null || !style.Name.Contains("heading"))
        continue;

    // Check that heading paragraph contains our text.
    if (!paragraph.Content.ToString().Contains(headingText))
        continue;

    // Get first table after the heading paragraph.
    Table table = new ContentRange(paragraph.Content.End, document.Content.End)
        .GetChildElements(ElementType.Table)
        .Cast<Table>()
        .First();

    // Get cell value.
    cellValue = table.Rows[rowIndex].Cells[columnIndex].Content.ToString();
    break;
}

Console.WriteLine(cellValue);