我在嘗試使用Word Interop從Word文檔中刪除數據/文本列表時遇到問題。到目前爲止,我認爲我可以通讀文檔來查找起始文本,然後找到結束文本,並將每個索引保存到自己的變量中。接下來,我將循環遍歷從起始索引到結束索引的數據,並刪除它們之間的所有文本。從Word Interop文檔中刪除文本
問題是它工作不正確,不能提供預期的結果。我不能理解接口在document.Paragraphs[i+1].Range.Delete();
中的工作方式。它刪除了一些行但不是全部,似乎超出了我所關心的刪除段落。我錯過了什麼?必須有更好的方法來做到這一點。 Interop的文檔似乎很低。
string text = " ";
int StartLocation = 0;
int EndLocation = 0;
//I roughly know the starting location
//starting at I=2248 so I don't
//through entire document
for (int i = 2248; i < 2700; i++)
{
text = document.Paragraphs[i + 1].Range.Text.ToString();
if (text.Contains("firstWordImSearchingFor"))
{
StartLocation = i;
}
if (text.Contains("lastWordImSearchingFor"))
{
EndLocation = i;
}
}
//delete everything between those paragraph locations
//(not working correctly/ skips lines)
for(int i = StartLocation; i<EndLocation-1i++)
{
document.Paragraphs[i+1].Range.Delete();
}
做'如何從文本中移除谷歌搜索word文檔C#Microsoft.Interop'看看這個一些可能的指針以及http://stackoverflow.com/questions/10231132/how-to-remove-text-from-word-document-footer-using-c-sharp – MethodMan
如果你使用'.docx'文件而不是'.doc'文件,我建議你停止使用interop類並切換到[微軟發佈的新SDK](https://msdn.microsoft.com/en-us /library/office/bb448854.aspx)專門用於處理'docx'文件。 –
是的,我做了很多谷歌搜索,並查看了其他問題/答案。其他我沒有找到與我的問題有關的答案,或者我錯過了一些東西。在大多數情況下,使用Interop創建文檔並沒有太大麻煩。出於某種原因,我聽起來很簡單。 – Bobby