npoi吧 关注:94贴子:222
  • 7回复贴,共1

关于NPOI读写Word模板后,保存新word出现的问题,求大神指导

只看楼主收藏回复

我的模板很简单,1个段落加4个Table。
然后我操作模板的代码如下:
string filePath = "C:/Users/Jason/Desktop/模板.docx";
FileStream filestream = File.OpenRead(filePath)
XWPFDocument doc = new XWPFDocument(filestream);
var tables = doc.GetTables();
var tab1 = tables[0];
string a=tab1.GetRow(0).GetCell(0).GetText();//验证是否读出数据
foreach (var row in tab1.GetRows())
{
row.GetCell(1).SetText("试试看");//编辑每行第二列的值
}
//保存stream流,这里出现问题了
FileStream ss = File.Create("C:/Users/Jason/Desktop/blank.docx");
doc.Write(ss);
ss.Close();
运行的时候没问题,a的值也能正确读出来,文件也能生成到桌面,但是打开的时候就会报错:无法打开Office Opeb XML文件 blank.docx,因为内容有错误;详细信息:未指定的错误,位置:部分:/word/styles.xml,行:158,列17


1楼2015-12-24 13:59回复
    解决了吗


    IP属地:广东2楼2017-08-21 10:41
    回复
      广告
      立即查看
      同问


      3楼2017-11-07 10:23
      回复
        请问在哪里下载npoi


        IP属地:重庆来自iPhone客户端4楼2018-02-28 15:13
        回复
          出现了楼主同样问题,请问解决了吗?


          IP属地:江苏5楼2018-06-25 11:20
          回复
            好像是因为文档中的图片造成的,去掉图片就不会报这个错误了


            IP属地:浙江6楼2018-07-02 17:36
            回复
              想要保存图片的话要怎么搞


              7楼2018-07-18 14:27
              回复
                MemoryStream ms = new MemoryStream();
                myDoc.Write(ms);
                //保存修改后的文档
                // 把 byte[] 写入文件
                FileStream fs = new FileStream(s_NewWordFullPath, FileMode.Create);
                BinaryWriter bw = new BinaryWriter(fs);
                // bw.Write(ms.GetBuffer());//这个方法有问题,会导致打开提示内容错误,因为尾部有大量的000000
                bw.Write(ms.ToArray());
                bw.Close();
                fs.Close();


                IP属地:安徽8楼2020-06-10 17:52
                回复