You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

使用Xceed DocX生成Docx文档返回空白文件求助

解决Xceed DocX生成空白Docx文件的问题

嘿,我找到你这个空白文档问题的根源啦!

当你调用document.Save()把内容写入MemoryStream后,流的位置指针会停在写入数据的末尾。这时候直接把这个流传给File方法,它会从当前指针位置开始读取——而末尾之后没有任何内容,自然生成的文档就是空白的。

这里是修正后的完整代码,关键步骤我标出来了:

MemoryStream stream = new MemoryStream();
Xceed.Words.NET.DocX document = Xceed.Words.NET.DocX.Create(stream);
Xceed.Words.NET.Paragraph p = document.InsertParagraph();
p.Append("Hello World");
document.Save();

// 重点!把流的位置重置到起始处,这样File方法才能读到全部内容
stream.Position = 0;

return File(stream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "DOCHK.docx");

小提醒

  • 确认你已经正确安装了Xceed.Words.NET的NuGet包,尽量用最新的稳定版本,避免版本兼容带来的奇怪问题。
  • 以后对MemoryStream操作后,如果需要再次读取,都要记得检查并重置指针位置哦~

内容的提问来源于stack exchange,提问作者jks

火山引擎 最新活动