• 最近有一个项目,涉及到文档操作,有一个固定的模版,模版中有文字和表格,表格会在新的文档中使用n多次

    //获取模版中的表格
    FileStream stream = new FileStream(strPath + "**.docx", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
    XWPFDocument docTemp = new XWPFDocument(stream);
    XWPFTable table=docTemp.Tables[0];
    XWPFDocument doc;
    Directory.CreateDirectory(strPath + "\\document");//系统报告模板路径
    FileStream stream = new FileStream("**.docx",FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
    XWPFDocument docTemp = new XWPFDocument(stream);
    XWPFTable table=docTemp.Tables[0];
    //单个表格的操作
    using (FileStream file = new FileStream("E:/01work/model2.docx", FileMode.Create, FileAccess.ReadWrite)) {
    doc = new XWPFDocument();
            int ct=doc.Tables.Count;
    table.GetRow(0).GetCell(0).SetText("");
       //对表格不停的操作……
    doc.CreateTable();
                 doc.SetTable(ct, table);
    }
    //在次之前一切正常
    XWPFDocument doc;
    Directory.CreateDirectory(strPath + "\\document");//系统报告模板路径
    FileStream stream = new FileStream("**.docx",FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
    XWPFDocument docTemp = new XWPFDocument(stream);
    XWPFTable table=docTemp.Tables[];
    //插入多个
    using (FileStream file = new FileStream("E:/01work/model2.docx", FileMode.Create, FileAccess.ReadWrite)) {
    doc = new XWPFDocument();
        for(int i=0;i<10;i++){
    table.GetRow().GetCell().SetText("");
       //对表格不停的操作…… int ct=doc.Tables.Count;
    doc.CreateTable();
    doc.SetTable(ct, table);
    }
    }

    运行后问题来了,所有的表格被填充一样的内容,无比的崩溃

  • 但我有一个原则,必须战胜它,努力了数小时之后
XWPFDocument doc;
Directory.CreateDirectory(strPath + "\\document");//系统报告模板路径
FileStream stream;
XWPFDocument docTemp;
XWPFTable table;
//插入多个
using (FileStream file = new FileStream("E:/01work/model2.docx", FileMode.Create, FileAccess.ReadWrite)) {
doc = new XWPFDocument();
    for(int i=;i<;i++){
        stream = new FileStream("**.docx",FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
docTemp = new XWPFDocument(stream);
stream.Close();//一定一定要记住关闭后再打开
table=docTemp.Tables[0];
table.GetRow().GetCell().SetText("");
   //对表格不停的操作…… int ct=doc.Tables.Count;
doc.CreateTable();
doc.SetTable(ct, table);
}
}

代码没有多少变化,也是辛勤汗水的浇注,希望能帮到大家

最新文章

  1. OC第六节—— 继承与类别
  2. Django1.9开发博客(10)- 全文搜索
  3. Factory_Method
  4. DataTable转换为Model实体对象
  5. C#调用Geocoding API进行地理编码与逆编码
  6. vmware克隆centos6.5 导致 system eth0 不可用解决办法
  7. CentOS 6.5 伪分布式 安装 hadoop 2.6.0
  8. 为自己的Android应用添加广告
  9. 用Redis作为Mysql数据库的缓存
  10. 深入理解C#的装箱和拆箱(转)
  11. 安装Pangolin
  12. 软件工程(五)UML
  13. 重签名提示:无法对 jar 进行签名: java.util.zip.ZipException
  14. 寻找数组中第K大的数
  15. php原样输出被编译过的html(适用于一些保存编辑器的内容)
  16. ArcGIS紧凑型切片读取与应用3-紧凑型批量转分散型(附源码)
  17. 【codeforces】【比赛题解】#851 CF Round #432 (Div.2)
  18. 连续的if语句
  19. 【JavaScript】时间戳转日期格式
  20. Shell 命令行实现将一个站点页面全部下载到本地并替换其中链接的脚本

热门文章

  1. floj 2264
  2. .net core2.2上传文件总结
  3. WingIDE注册破解方法 CalcActivationCode.py
  4. redis 其他操作
  5. Docker学习(十)Docker容器编排 Docker-compose
  6. java 语句流程
  7. Java入门 - 语言基础 - 07.修饰符
  8. 降级gcc版本
  9. Docker三剑客之swarm
  10. Typora常用快捷键