2011-05-16 55 views
1

我使用Microsoft.Office.InteropMicrosoft.Office.Word,並與所有創建,段落,表格等在內存中創建一個對象。我需要這個對象來生成一個內容字節[]來提供一個表中相同類型的字段。 我無法以任何方式使用oDoc.Save(「路徑」)以物理方式將其保存以便使用FileStream並解決我的問題。轉換Word互操作對象爲byte [],不保存物理

已經嘗試了幾種解決方案,以及如何使用剪貼板,並沒有工作。任何解決方案

+1

你得到什麼錯誤?你能顯示一些代碼嗎? – keyboardP 2011-05-16 20:53:37

+0

我不知道是否保存到命名管道可能工作...但 - 寫入TEMP是更容易... – 2011-05-16 21:32:19

+0

馬克,我不寫TEMP,因爲沒有任何權限寫在FS中。 – Iceknight 2011-05-17 17:59:35

回答

0

您是否真的必須使用Microsoft.Office.InteropMicrosoft.Office.Word

如果沒有必要,可以使用OpenXML SDK libraries來操作WordDocument的內容。

OpenXML SDK包含一個類WordprocessingDocument,它可以操縱包含WordDocument內容的內存流。並且MemoryStream可以使用ToArray()轉換爲byte[]

作爲一個代碼示例:

byte[] templateContent = File.ReadAllBytes(templateFile); 

MemoryStream stream = new MemoryStream(); 
stream.Write(templateContent, 0, templateContent.Length); 

WordprocessingDocument wordDoc = WordprocessingDocument.Open(stream, true); 

// When done 
byte[] contentOfWordFile = stream.toArray(); 
相關問題