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

別のメソッドに分割しますが、最も単純なソリューションであるため、replace実装を使用します。問題が発生した場合は、後でいつでも実装を変更できます(テキストに複数が含まれていて、\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 に答える