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

标签 c# winforms office-interop

我正在使用 Microsoft.Office.Interop.Word 来解析 Word 2010 文档。我正在抓取每一页上每个表格第一列中每个单元格中的所有文本。不过,我遇到的问题是,当我收到文本时,它不包括列表编号。例如,我的表格中的文本如下所示: enter image description here

我的程序循环遍历文档并从第一列的每个单元格中获取文本。不过,我得到的不是“1. Introduction”,而是“Introduction”。这是我得到的数据:

enter image description here

如您所见,我没有得到列表编号,只有文本(即“介绍”而不是“1. 介绍”)。

这是我用来获取数据的循环:

        // 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;

...但我无法准确地弄明白。

最佳答案

找到了答案。我必须获得 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);
            }
        }

关于c# - 从 Word 文档中获取列表编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17810974/

相关文章:

C# List<> 我应该在删除项目时降低容量吗?

c# - 没有虚拟化的 WPF DataGrid 性能

c# - 如何包含行号和文件名 Console.WriteLine 输出?

c# - 为什么我的 Winforms 应用程序中的 SynchronizationContext.Current 为空?

C# 在 WndProc 中检测点击并在点击发生后调用函数

c# - DataGridView 只读 "bug"

Excel:在隐藏单元格中查找数据(不取消隐藏)

c# - 如何像图像一样在 C# WPF 窗口中添加 svg/xaml 文件?

c# - Office.Interop.Word - 如何双面打印文档?

c# - Word文档打不开