2

寻求建议(也许是最佳实践)。

我们有一个从单元格中提取文本的 MS Word 文档(Office 2007)。

我们可以使用以下内容:

string text = wordTable.cell(tablerow.index, 1).Range.Text;

文本被提取;但是我们似乎得到了额外的字符尾随,例如\r\a.

现在我们可以添加以下内容:

.... wordTable.cell(tablerow.index, 1).Range.Text.Replace("\r\a,"");

但这似乎有点太懒惰了,而且几乎是在浪费时间,很可能会导致未来出现问题。

我们还可以有一个接收要清理的字符串的方法:

private string cleanTextWordCellBreak(string wordTextToClean)
{
    // Clean the text here
    return cleanstring;
}

然后我们可以使用它:

cleanTextWordCellBreak(wordTable.cell(tablerow.index, 1).Range.Text;
);

这似乎更接近于处理问题的更好方法。你会怎么办?

4

3 回答 3

2

我会将它分解为一个单独的方法,但使用替换实现,因为它是最简单的解决方案。如果遇到问题,您可以随时更改实现(例如文本包含多个\r\a并且需要保留)

所以:

private string stripCellText(string text)
{
      return text.Replace("\r\a", "");
}

string text = stripCellText(wordTable.cell(tablerow.index, 1).Range.Text);
于 2008-12-18T15:54:33.300 回答
0

我肯定会选择亲自将其分解为单独的方法。它有助于提高代码的可读性,并使其在将来需要时更容易更改。

于 2008-12-18T15:37:21.120 回答
0

获得它的另一种方法是获取字符的长度并将文本提取到该长度。

dim range as Range
dim text as string
dim length as Integer

range = ActiveDocument.Tables(1).Cell(1,1).Range
text = range.Text
length = range.Characters.Count

Debug.Print Mid(text, 1, length - 1)

于 2008-12-18T20:11:07.650 回答