我正在使用Microsoft.Office.Interop.Word.Application。我有一些模板文檔,其中將有一些令牌像文件 [PutfirstTableHere] 在運行時,我將創建表,並希望用生成的表替換現有的Word文檔中的令牌 任何機構可以讓我知道如何我可以用Word中的表替換字符串標記嗎? 無法找到任何例子/樣本對我目前的問題用word表替換Word文檔中的字符串標記
回答
試試這個:
protected void InsertTableAtBookMark(string[][] docEnds, string bookmarkName)
{
Object oBookMarkName = bookmarkName;
Range wRng = WordDoc.Bookmarks.get_Item(ref oBookMarkName).Range;
Table wTable = WordDoc.Tables.Add(wRng, docEnds.Length, docEnds[0].Length);
wTable.set_Style("Table Grid");
for (int i = 0; i < docEnds.Length; i++)
{
for (int j = 0; j < docEnds[0].Length; j++)
{
wTable.Cell(i, j).Range.Text = docEnds[i][j];
wTable.Cell(1, 1).Range.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
wTable.Cell(1, 1).VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalCenter;
}
}
Borders wb = wTable.Borders;
wb[WdBorderType.wdBorderHorizontal].LineStyle = WdLineStyle.wdLineStyleNone;
wb[WdBorderType.wdBorderVertical].LineStyle = WdLineStyle.wdLineStyleNone;
wTable.Borders = wb;
}
哪裏WordDoc是的Microsoft.Office.Interop.Word命名空間的類型文件的;
我不能通過令牌嗎? 其實我對tempalte有不同的標記,其中一些是簡單的字符串,我認爲可以很容易替換,而其他的標記必須由genreated表替換 –
您可以使用字符串來做到這一點,但它涉及多一點,你必須使用像這樣的對象開始= 0; object end = 0; Word.Range tableLocation = this.Range(ref start,ref end);'你在哪裏用你的索引替換開始和結束是字符串,我真的不推薦它,但它是你的選擇。 – trebor
toby任何樣品爲它?無法獲得並能夠工作 –
您可以使用Find Interface及其Execute方法搜索文檔內容。第一個參數是在範圍內搜索的文本(在你的情況下,我會推薦使用Word.Document.Content屬性),從中創建查找對象。
代碼:
Word.Document doc = Application.ActiveDocument;
Word.Range wholeDoc = doc.Content;
Word.Find find = wholeDoc.Find;
object token = "[MyTableToken]";
object missing = Type.Missing;
bool result = find.Execute(ref token, true, true, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
while (result)
{
// wholeDoc object is replaced with executed search/find result
CreateTable(wholeDoc.Duplicate);
result = find.Execute(ref token, true, true, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
}
樣本創建表的方法:
private void CreateTable(Word.Range range)
{
Word.Tables tables = null;
try
{
int sampleRowNumber = 3, sampleColumnNumber = 3;
range.Text = "";
tables = range.Tables;
tables.Add(range, sampleRowNumber, sampleColumnNumber);
}
finally
{
Marshal.ReleaseComObject(range);
Marshal.ReleaseComObject(tables);
}
}
- 1. Word文檔。替換標記
- 2. 替換word文檔中的標題
- 3. 使用OpenXML SDK簡單替換Word文檔中的標記
- 4. C# - 用退格替換word文檔字符串
- 5. 在Word中使用VBA的文檔中標記特殊字符
- 6. 在Word文檔中插入字符串
- 7. 用另一個word文檔的內容替換Word文檔中的書籤
- 8. 使用Java:替換MS Word文件中的字符串
- 9. 用標題替換Word文檔中的文本
- 10. 從Microsoft Word以外的Word文檔中替換超鏈接
- 11. 使用Openxml替換Word文檔中的字段值
- 12. 需要用excel圖表替換word文檔中的圖像
- 13. 在Word文檔中嵌入Word文檔
- 14. 我應該如何替換word文檔中的字符串與使用poi的另一個字符串?
- 15. 如何使用命令行(CLI)在word文檔上執行字符串替換
- 16. JS將字符串中的每個#word替換爲<div>#word</div>
- 17. 替換word文檔中的所有標題樣式
- 18. 無形標記了一個word文檔
- 19. 使用VBA宏查找word文檔中的子字符串
- 20. 將Word文檔轉換爲Base64字符串C#
- 21. 查找基於開始/結束字符變量內部字符在Word文檔中的字符串並替換
- 22. 使用Open Xml替換Word文檔中的文本
- 23. 將Word文檔保存爲「Word文檔」
- 24. 用於Word合併的字符串替換
- 25. word interop替換文檔內容的標籤
- 26. 如何替換Word文檔中的書籤中的文本
- 27. 查看word文檔的字符unicode值
- 28. 從Excel中替換Word文檔中的文本
- 29. word文檔的字體
- 30. 在Python中替換Microsoft Word換行符
不要使用這樣的標記,詞有是爲這個偉大的書籤。以http://msdn.microsoft.com/en-us/library/6b9478cs(v=vs.80).aspx爲例。我也建議使用OpenXMLSdk,因爲它不需要Word,它的速度比Interop快得多http://msdn.microsoft.com/en-us/library/office/bb456488.aspx – trebor
不能使用OpenXmlSdk。它擾亂了文檔。 –