使用自动编号从 word 文档表的列中提取单元格值

Extracting cell values from columns of word document tables with automatic numbering

我正在使用 Microsoft.Office.Interop.Word 开发一个基于单词自动化的应用程序
我正在使用这种方法从单元格中读取数据:

string strValue = tbMytable.Rows[iRowIndex].Cells[1].Range.Text;
if (strValue.Contains("\x0d\x07"))
{
    // remove cell marker
    strValue = strValue.Remove(strValue.IndexOf("\x0d\x07"), 2);
}

这适用于大多数 table,但是一旦我收到 tbMytable.Rows[iRowIndex].Cells[1].Range.Text 返回的空字符串

当我通过在 Microsoft Office Word 2013 中打开文档进行手动检查时,我可以看到第一列单元格的值为 step 1step 2 等。

经过一些调试,我发现这是因为 table 对第一列使用了自动编号(步骤编号字符串是 1 个范围宽)。我再次在Word 2013中打开文档并确认了这一点。

现在如何使用 Word Interop 从这样的单元格中读取值?
除了修剪 \x0d\x07 或执行 clmyCell.Range.MoveEnd(WdUnits.wdCharacter, -1) 之外,是否有更好的方法从没有细胞标记的细胞中提取值?


编辑:
我添加了 sample document [1] 以进行说明。

(zip 的密码是 password ,没有任何空格)。

我能够从除第一列中的单元格之外的所有单元格中读取数据。
如何使用 word interop 从第一列的单元格(例如 "Step 2" 字符串)中读取数据?

[1] http://www.fileconvoy.com/dfl.php?id=g25ad0529c423888e999811789c1cece853a016e55



(zip 的密码是 password ,没有任何空格)。

我在您的文档中对其进行了测试,这里有一个小示例向您展示它是如何在 VBA

中完成的
Sub ShowTableCellValue()

    If ActiveDocument.Tables(1).Cell(1, 1).Range.ListParagraphs.Count > 0 Then
        MsgBox ActiveDocument.Tables(1).Cell(1, 1).Range.ListFormat.ListString
    End If

End Sub

我想你可以自己把它翻译成C#,如果不会大声说出来,我也会帮你翻译