internship:利用EasyPoi 读取word文档生成JavaBean

基于对SSM框架的掌握之后,继而对springboot的搭建 。
初始的工作就是对重装系统的电脑进行所有的环境配置 及其之后对常用框架的搭建。之后对springboot框架的持续学习。
环境搭建完成之后的内容,就是——
1、熟悉使用EasyPoi工具
2、使用EasyPoi读取以上两个文档的内容
3、获取文档中"{ {}}"包裹的变量名并生成Java文件,例如Model.java

Model.java:

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 预算调整报告数据
 */
@Data
@Accessors(chain = true)
public class BudgetAdjustDeptReportModel {
   

    @ApiModelProperty(value = "年度")
    private int year = LocalDate.now().getYear();

    @ApiModelProperty(value = "部门")
    private String dept = "-";

    @ApiModelProperty(value = "季度")
    private String quarter;
	
	@ApiModelProperty(value = "季度")
    private BigDecimal ybggIncome;

}

接下来就是持续了解 部分掌握easyPoi工具——
前端传递参数,接受返回的文件并下载到本地
后端:接受传递过来的参数,查找出对应的实体类,通过easypoi提供的模板和控制类,写入文件
模板:根据要写入的值确定word模板,并将其放入启动类所在包的resource下,这里的模板,就联想到
thymeleaf模板。
实体:实体类添加@Escel相关注释

确定word文档模板:

{
  {area}}   双括号内放变量或常量
{
  {fd:(Time;yyyy-MM-dd)}}   fd:(obj;yyyy-MM-dd)格式化时间格式
{
  {fe:List t}}   fe:obj  t  t为别名

为了提取word文档的指定内容 利用了字符串的截取及其替代——replaceAll的参数是regex,即基于正则表达式的替换,比如,可以通过replaceAll(“\d”, “*”)把一个字符串所有的数字字符都换成星号;replaceAll是一个非常好用的方法 基于正则表达式的运用能更好的实现提取。同时需要注意的是 一些被替代的需要转义字符的使用。
比如:

  sub = sub.replaceAll("[^a-z^A-Z]", "");
"[^a-z^A-Z]" 表示非英文字母的

表示提取纯英文。

第一份任务安排是读取word文档 自动生成JavaBean
.docx:
在这里插入图片描述
其中 字段信息不仅于此;所以手动去创建类及属性 并不实际:
编写类实现自动生成:

package com.boot.demo.output;

import com.boot.demo.service.EntityProperty;
import com.boot.demo.service.FieldProperty;
import com.boot.demo.service.ParseConfig;
import com.boot.demo.service.WordPOI;
import org.apache.poi.ooxml.POIXMLDocument;
import org.apache.poi.ooxml.extractor.POIXMLTextExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class WordPoiImpl {
   
    public static void main(String[] args) throws IOException {
   
       WordPOI wordPOI=new WordPOI();
       String BigDecimal="BigDecimal";
        List<String> list = new ArrayList<>();
        List<FieldProperty> fieldProperties=new ArrayList<>();
        ParseConfig parseConfig=new ParseConfig();

        try {
   
            OPCPackage opcPackage = POIXMLDocument.openPackage("C:\\Users\\Redic\\IdeaProjects\\demo\\src\\main\\resources\\word\\ystz.docx");
            POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
            String text2007 = extractor.getText();
            String str1=text2007.replaceAll("\\{\\{","}}");
            String subSentences[] = str1.split("\\}\\}");
            String allStr="";

            for (String sub : subSentences) {
   
                sub=sub.replaceAll("[^a-z^A-Z]", ""
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值