当前位置: 首页 > article >正文

导入word模板的数据到DB,偏自学,可自改套用

@GetMapping("/importTestPeople")
    public void importTestPeople(@RequestParam("file") MultipartFile multipartFile) throws IOException {
        InputStream inputStream = null;
        File file = null;
        try {

            // 创建临时文件
            file = File.createTempFile("temp", null);
            // 把multipartFile写入临时文件
            multipartFile.transferTo(file);
            // 使用文件创建 inputStream 流
            inputStream = new FileInputStream(file);

            //读取Word文档
            XWPFDocument document = new XWPFDocument(inputStream);

            List<StringBuffer> joinList = new ArrayList<>();

            // 获取文档中的所有表格
            List<XWPFTable> tables = document.getTables();

            for (XWPFTable table : tables) {
                // 获取表格的行
                List<XWPFTableRow> rows = table.getRows();
                // 遍历每一行
                for (XWPFTableRow row : rows) {
                    // 获取行中的单元格
                    List<XWPFTableCell> cells = row.getTableCells();
                    //存入数据
                    StringBuffer stringBuffer = new StringBuffer();
                    // 遍历每个单元格
                    for (XWPFTableCell cell : cells) {
                        // 输出单元格的文本内容
                        System.out.print(cell.getText() + "|");
                        stringBuffer.append(cell.getText() + "|");
                    }
                    joinList.add(stringBuffer);
                    System.out.println(); // 换行
                }
                System.out.println(); // 表格间换行
            }

            for(int i = 0; i<joinList.size();i ++){
                String[] split = joinList.get(i).toString().split("\\|");
                ManualModeInfomation manualModeInfomation = new ManualModeInfomation();
                manualModeInfomation.setId(Integer.valueOf(split[0]));
                manualModeInfomation.setModelId(2);
                //父级
                manualModeInfomation.setFatherLevel(split[1]);
                //子级
                manualModeInfomation.setChildLevel(split[2]);
                //故障现象
                manualModeInfomation.setFaultPhenomenon(split[4]);
                //主要原因
                manualModeInfomation.setMainCause(split[5]);
                //解决方法
                manualModeInfomationMapper.insert(manualModeInfomation);
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            // 最后记得删除文件
            file.deleteOnExit();
            // 关闭流
            inputStream.close();
        }

说明:应用方面是word版且为表格,可解析,能看懂的自然会微调,感谢大家!!!

如:需word为表格形式


http://www.kler.cn/a/292266.html

相关文章:

  • CSS Module:告别类名冲突,拥抱模块化样式(5)
  • 系统架构设计师第二版口诀
  • JDBC-Mysql 时区问题详解
  • 蓝桥杯竞赛单片机组备赛【经验帖】
  • SQL面试题——蚂蚁SQL面试题 连续3天减少碳排放量不低于100的用户
  • 微信小程序自定义顶部导航栏(适配各种机型)
  • eureka一
  • 如何给 Java 文件打成独立的 JAR 包
  • 最基本的SELECT...FROM结构
  • HTB-Funnel(ssh端口转发与Hydra爆破)
  • blast的快速安装使用-简易版
  • Python知识点:如何使用Slack与Python进行团队协作
  • C++的四种规范的类型转换
  • 广义回归神经网络(GRNN)
  • Facebook的AI进化:如何用智能技术提升内容推荐
  • DataAccessException产生原因及解决方案
  • One-Shot Imitation Learning
  • 谷歌计划在越南设立首个美国科技数据中心
  • 山东大学机试试题合集
  • 在 Ubuntu 上安装 Jenkins,并配置 SSH Server 插件
  • 使用 Docker 部署和运行 RabbitMQ
  • 举例说明,在HTTP中怎样使用哈希算法?
  • SF-HCI-SAP问题收集19:自定义MDF不生效 开始时间与结束日期映射逻辑
  • LCR 017
  • 揭开分布式系统的神秘面纱:Java中的分布式链路追踪详解
  • Linux CentOS 部署Docker