• 最近有一个项目,涉及到文档操作,有一个固定的模版,模版中有文字和表格,表格会在新的文档中使用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);
}
}

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

NPOI word文档表格在新的文档中多次使用的更多相关文章

  1. C#如何向word文档插入一个新段落及隐藏段落

    编辑Word文档时,我们有时会突然想增加一段新内容:而将word文档给他人浏览时,有些信息我们是不想让他人看到的.那么如何运用C#编程的方式巧妙地插入或隐藏段落呢?本文将与大家分享一种向Word文档插 ...

  2. Elasticsearch-更新现有文档

    ES-更新现有文档 ES的更新API允许发送文档所需要做的修改,而且API会返回一个答复,告知操作是否成功.更新流程如下 1. 检索现有的文档.为了使这步奏效,必须打开_source字段,否则ES并不 ...

  3. 编写Java程序,读取文本文档的内容,去除文本中包含的“广告”字样,把更改后的内容保存到一个新的文本文档中

    查看本章节 查看作业目录 需求说明: 读取文本文档的内容,去除文本中包含的"广告"字样,把更改后的内容保存到一个新的文本文档中 实现思路: 在main() 方法中,使用 new F ...

  4. 【java】Freemarker 动态生成word(带图片表格)

    1.添加freemarker.jar 到java项目. 2.新建word文档. 3.将文档另存为xml 格式. 4.将xml格式化后打开编辑(最好用notepad,有格式),找到需要替换的内容,将内容 ...

  5. Word批量设置表格宽度自动适应页面宽度

    怎么批量修改Word表格的宽度呢.Word表格可根据窗口自动调整表格宽度,使得所有的表格宽度和页面宽度一样. 当页面设置了新的页边距后,所有的表格都需要调整新的宽度.或者文档中有许多大大小小的表格,希 ...

  6. Word 文字转表格

    今天工作的时候遇到一个问题,需要整理出一个工程下依赖的jar的名称和大小,并且按照大小排序,我在使用一个java程序打印出名称和大小之后,需要将这些文字整理到word文档表格中,刚开始是想一个个的拷进 ...

  7. CEBX格式的文档如何转换为PDF格式文档、DOCX文档?

    方正阿帕比CEBX格式的文档如何转换为PDF格式文档.DOCX文档? 简介: PDF.Doc.Docx格式的文档使用的非常普遍,金山WPS可以直接打开PDF和Doc.Docx文档,使用也很方便. CE ...

  8. CentOS6.4下使用默认的文档查看器打开PDF文档乱码的解决方案

     最近在CentOS6.4下使用其默认的文档查看器打开PDF文档时出现乱码的方块,有两种方法可以解决.    方法一:修改/etc/fonts/conf.d/49-sansserif.conf文件,如 ...

  9. Java:多个文档合并输出到一个文档

    多个文档合并输出到一个文档 方法:Java NIO package First; import java.io.File; import java.io.FileInputStream; import ...

随机推荐

  1. TCP 协议详解

    TCP 协议是 更靠近应用层,因此在应用程序中具有更强可操作性,一些重要 socket 选项都和 TCP 协议相关. TCP 头部信息:TCP 头部信息出现在每个 TCP 报文段中,用于指定通信的源端 ...

  2. nginx负载均衡动态自动更新(微博开源模块nginx-upsync-module使用)

    这几天项目有个需求:负载要求能根据节点健康状态动态的增减.nginx自带的upstram已经很强大,而且基于Nginx Upstream配置动态更新已经有很多开源方案,大多数都是基于生成配置文件后进行 ...

  3. cf - 01串的问题

    One beautiful July morning a terrible thing happened in Mainframe: a mean virus Megabyte somehow got ...

  4. 切蛋糕(贪心 or 优先队列)

    链接:https://www.nowcoder.com/acm/contest/80/D来源:牛客网 最可爱的applese生日啦,他准备了许多个质量不同的蛋糕,想请一些同学来参加他的派对为他庆生,为 ...

  5. PTA - 堆栈模拟队列

    设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q. 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stack S):判断堆栈S是否已满,返回1或0: in ...

  6. hdu6638 线段树求最大子段和

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6638 Problem Description There are n pirate chests bu ...

  7. arima.predict()参数选择以及相关的一些问题

    在使用a ri ma进行模型建立时,需要注意以下几点 1.参数选择上predict必须起始时间在原始的数据及当中的,在下例中就是说2017必须在数据集里面,而2019不受限制,只哟在2017后面就好了 ...

  8. Vue 例子

    一.简单音乐播放器 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  9. Kettle自定义jar包供javascript使用

    我们都知道 Kettle 是用 Java 语言开发,并且可以在 JavaScript 里面直接调用 java 类方法.所以有些时候,我们可以自定义一些方法,来供 JavaScript 使用. 本篇文章 ...

  10. CQBZOJ 【重庆市NOIP模拟赛】避难向导

    题目描述 "特大新闻,特大新闻!全国爆发了一种极其可怕的病毒,已经开始在各个城市 中传播开来!全国陷入了巨大的危机!大量居民陷入恐慌,想要逃到其它城市以 避难!经调查显示,该病毒来自于C 市 ...