我正在从 stringBuilder
中获取数据并将其放入 .docx 文件中。对于 .doc 扩展名,我们可以直接使用 stringBuilder
。但对于 .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();
最佳答案
你搞混了。
Doc 和 Docx 具有复杂的结构,而不仅仅是文本。使用任何十六进制查看器打开一个真实的 doc 或 docx 文件以查看里面的内容,然后打开您的文件进行比较
您在这里所做的是制作一个潜在的文本文件,您只需将扩展名更改为 doc 或 docx。现在,当 MS Word 将要读取这样的文件时,ms word 将其转换为 doc 或 docx,这不是因为您将其设为 ms word 文件,而是因为 ms word 识别出这是一个文本文件并尝试转换并显示。
完全错误的方法。
有一些关于如何从 asp.net 制作 ms word 文档的教程,但这不是一种方法,编写任何内容并将其保存为 docx 并等待工作。
https://www.google.com/search?q=how+to+create+ms+word+files+from+asp.net
关于c# - html 内容到 docx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8923222/