java 动态编辑word中表格数据

在maven项目的pom.xml里引入

<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.doc.free</artifactId>
    <version>5.2.0</version>
</dependency>

编辑表格代码

  //加载测试文档
  Document doc = new Document();
  doc.loadFromFile("src/main/resources/model/1.docx");
  
  //获取表格
  Section section = doc.getSections().get(0);
  
   //这里是读取数据库表中数据
  List<CertAcceptBill> acceptBillList = acceptBillExtMapper.selectAcceptBillList(); 
  
  //对第1个表格进行操作
  Table table = section.getTables().get(1);
  
  //从表格最后一行开始删除行
  for(int r = 0; r < table.getRows().getCount(); r++){
      table.getRows().remove(table.getLastRow());
  }
  
  //写入剩余组内容到表格,并格式化数据
  for(CertAcceptBill acceptBill : acceptBillList){   //这里是遍历数据库表数据
      TableRow dataRow = table.addRow();   //这里是添加一行表格
      
      TextRange range; 
      
      //表示在第某行的第一个格子里写入acceptBill.getBankAcceptNo()
      range = dataRow.getCells().get(0).addParagraph().appendText(acceptBill.getBankAcceptNo()); 
      range.getCharacterFormat().setFontName("仿宋");
      range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);//设置水平居中
      range = dataRow.getCells().get(1).addParagraph().appendText(acceptBill.getAccountNo());
      range.getCharacterFormat().setFontName("仿宋");
      range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
      //循环枚举判断是什么币种
      String currency = acceptBill.getCurrency();
      for (Currency c : Currency.values()) {
          if (currency != null && currency.trim().equals(c.getCurrencyId())) {
              currency = c.getCurrencyName();
          }
      }
      range = dataRow.getCells().get(2).addParagraph().appendText(currency);
      range.getCharacterFormat().setFontName("仿宋");
      range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
      if (acceptBill.getFaceAmount() != null) {
          range = dataRow.getCells().get(3).addParagraph().appendText(acceptBill.getFaceAmount().toString());
          range.getCharacterFormat().setFontName("仿宋");
          range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
      }
      if (acceptBill.getIssueDay() != null) {
          range = dataRow.getCells().get(4).addParagraph().appendText(sdf.format(acceptBill.getIssueDay()));
          range.getCharacterFormat().setFontName("仿宋");
          range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
      }
      if (acceptBill.getDueDate() != null) {
          range = dataRow.getCells().get(5).addParagraph().appendText(sdf.format(acceptBill.getDueDate()));
          range.getCharacterFormat().setFontName("仿宋");
          range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
      }
      range = dataRow.getCells().get(6).addParagraph().appendText(acceptBill.getCollateral());
      range.getCharacterFormat().setFontName("仿宋");
      range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
  }
  
    //保存文档
    doc.saveToFile("src/main/resources/model/2.docx", FileFormat.Docx_2013);
    doc.dispose();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值