【问题标题】:Get text above table MS Word获取表格上方的文字 MS Word
【发布时间】:2011-12-29 03:24:00
【问题描述】:

这个可能有点傻,但我真的需要它。我有 5 个表格的文档,每个表格都有一个标题。标题是没有特殊样式的常规文本,什么都没有。我需要从这些表+加上标题中提取数据。 目前,使用 MS 互操作,我能够使用以下方式遍历每个表的每个单元格:

app.Tables[1].Cell(2, 2).Range.Text;

但现在我正在努力弄清楚如何将文本放在桌子上方。 截图如下:

对于第一个表,我需要得到“我需要这个文本”,对于第二个表,我需要得到:“这个也请”

所以,基本上我需要每个表格前的最后一段。关于如何做到这一点的任何建议?

【问题讨论】:

    标签: c# .net office-interop office-2007


    【解决方案1】:

    Mellamokb 在他的回答中给了我一个提示和一个如何在段落中搜索的好例子。在实施他的解决方案时,我遇到了完全符合我们需要的功能“Previous”。使用方法如下:

    wd.Tables[1].Cell(1, 1).Range.Previous(WdUnits.wdParagraph, 2).Text;
    

    Previous 接受两个参数。首先 - 您想从此列表中找到的单位:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.wdunits.aspx 第二个参数是您要倒数的单位数。就我而言,2有效。看起来应该是,因为它就在桌子前面,但是有了一个,我得到了奇怪的特殊字符:,看起来像女性指示器。

    【讨论】:

    • 我认为谷歌搜索“如何在 word 中的表格上方获取文本”完全是徒劳的,但我绝望了,我尝试了。这使我找到了解决方案。谢谢!我用netoffice的C#,你想在table上使用previousSibling()方法。
    【解决方案2】:

    您可以尝试类似的方法。我将段落与表格的第一个单元格进行比较,当匹配时,将前一段作为表格标题。当然,这仅在表格的第一个单元格包含在文档的其他位置找不到的唯一段落时才有效:

    var tIndex = 1;
    var tCount = oDoc.Tables.Count;
    var tblData = oDoc.Tables[tIndex].Cell(1, 1).Range.Text;
    var pCount = oDoc.Paragraphs.Count;
    var prevPara = "";
    for (var i = 1; i <= pCount; i++) {
        var para = oDoc.Paragraphs[i];
        var paraData = para.Range.Text;
    
        if (paraData == tblData) {
            // this paragraph is at the beginning of the table, so grab previous paragraph
            Console.WriteLine("Header: " + prevPara);
            tIndex++;
            if (tIndex <= tCount)
                tblData = oDoc.Tables[tIndex].Cell(1, 1).Range.Text;
            else
                break;
        }
        prevPara = paraData;
    }
    

    样本输出:

    Header: I NEED THIS TEXT
    
    Header: AND THIS ONE also please
    

    【讨论】:

    • 非常感谢您的帮助!您的解决方案让我了解了如何实现这一点。花了一些时间后,我想出了一个更简单的方法来做到这一点。我会将此作为答案发布。
    猜你喜欢
    • 1970-01-01
    • 2013-07-06
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2016-03-11
    • 2017-11-05
    • 1970-01-01
    相关资源
    最近更新 更多