2012-01-19 82 views
2

我正在從stringBuilder獲取數據並將其放入.docx文件。對於.doc擴展名,我們可以直接使用stringBuilder。但是.docx文件存在問題。將html內容導入docx文件

像這樣。但它破壞了.docx文件。

strBuilder.Append("".ToString()); strBuilder.Append("".ToString()); 
strBuilder.Append("SI.No ".ToString()); strBuilder.Append("<\table>"); 

FileStream stream = File.Open(@"D:\wordfile3.DOCX", FileMode.Create); 

System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); 

byte[] binaryData = encoding.GetBytes(strBuilder.ToString()); 

for (int i = 0; i < binaryData.Length; i++) 
{ 
    stream.WriteByte(binaryData[i]); 
} 

stream.Flush(); 
stream.Close(); 
+0

文件和DOCX是富文本格式。 (RTF)。研究將html轉換爲rtf。 (我花了最近幾天的時間來研究這個)。只有付費版本才能夠完成這項工作。 http://stackoverflow.com/questions/150208/how-do-i-convert-html-to-rtf-rich-text-in-net-without-paying-for-a-component – Doomsknight

回答

2

你混淆了想法。

Doc和Docx有一個複雜的結構,而不僅僅是文本。用任何十六進制查看器打開一個真正的文檔或docx文件,看看裏面有什麼,然後打開你的比較它們

你在這裏做什麼是你做一個潛在的文本文件,你只需改變擴展名爲DOC或DOCX。現在,當這樣的文件將被MS Word讀取時,ms字將其轉換爲doc或docx,這不是因爲您將其設置爲ms字文件,而是因爲ms字識別出這是一個文本文件並嘗試轉換並顯示它。

錯誤的方法。

有一些關於如何從asp.net製作ms word文檔的教程,但這不是一種方法,可以編寫任何東西並將其保存爲docx並等待工作。

https://www.google.com/search?q=how+to+create+ms+word+files+from+asp.net

http://www.codeproject.com/KB/aspnet/wordapplication.aspx