从Word文档中获取列表编号?

3
我正在使用 Microsoft.Office.Interop.Word 解析 Word 2010 文档。我正在获取每个表格的第一列中的所有文本,包括每个页面上的表格。但是,我遇到的问题是,当我获取文本时,它不包括列表编号。例如,我的表格中的文本如下所示:
[图片]
我的程序循环遍历文档并获取每个表格第一列中的文本。但是,我得到的不是“1. Introduction”,而是“Introduction”。以下是我获取的数据:
[图片]
可以看到,我没有得到列表编号,只有文本(即“Introduction”而不是“1. Introduction”)。
以下是我用于获取数据的循环:
        // Loop through each table in the document, 
        // grab only text from cells in the first column
        // in each table.
        foreach (Table tb in docs.Tables)
        {
            for (int row = 1; row <= tb.Rows.Count; row++)
            {
                var cell = tb.Cell(row, 1);
                var text = cell.Range.Text;
                dt.Rows.Add(text);
            }
        }

有人能提供一些如何从每个单元格中获取列表编号和文本的提示吗?我想它可能是这样的:

var text = cell.Range.ListNumber + " " + cell.Range.Text;

但我确切地想不出来。

在IT技术方面的内容

这些数字是列表编号,对吗? - Visions
我假设它们是。在文档中,它们只是用来形成大纲的。就Interop而言,我不确定它们被称为什么。我想到了列表编号或大纲编号,但我不能确定术语。我希望当我从单元格中获取文本时,数字也会出现。然而事实并非如此。它们被视为独立的,我不知道如何访问它们。 - Kevin
1个回答

5

找到了答案。我需要获取ListString的值:

        // Loop through each table in the document, 
        // grab only text from cells in the first column
        // in each table.
        foreach (Table tb in docs.Tables)
        {
            for (int row = 1; row <= tb.Rows.Count; row++)
            {
                var cell = tb.Cell(row, 1);
                var listNumber = cell.Range.ListFormat.ListString;
                var text = listNumber + " " + cell.Range.Text;

                dt.Rows.Add(text);
            }
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接