寻求建议(也许是最佳实践)。
我们有一个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;
);
这似乎更接近处理问题的更好方法。你会做什么?
答案 0 :(得分:1)
我会将其分解为单独的方法,但使用replace实现,因为它是最简单的解决方案。如果遇到问题(例如文本包含多个\r\a
并需要保留),您可以随时更改实现。
所以:
private string stripCellText(string text)
{
return text.Replace("\r\a", "");
}
string text = stripCellText(wordTable.cell(tablerow.index, 1).Range.Text);
答案 1 :(得分:0)
我绝对会选择将其分解为单独的方法。它有助于提高代码的可读性,并且在将来需要时可以更容易地进行更改。
答案 2 :(得分: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)