poi解析word和excel文档

简介: poi解析word和excel文档
-
package com.gxt.testcase.service.impl;
import com.jj.system.pojo.web.SmUploadfile;
import com.jj.system.service.web.SmUploadfileService;
import java.io.InputStream;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import java.io.FileInputStream;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.TableIterator;
import org.apache.poi.hwpf.usermodel.Table;
import org.apache.poi.hwpf.usermodel.TableRow;
import org.apache.poi.hwpf.usermodel.TableCell;
import org.apache.poi.hwpf.usermodel.Range;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ExecuteDataTimer
{
  @Autowired
  private SmUploadfileService smUploadfileService;
  /**
   * 解析excel中的内容
   * @param smUploadfile
   * @return
   * @throws IOException
   */
  private Map<String, Object> testdataImport(SmUploadfile smUploadfile)
    throws IOException
  {
    //1.根据路径取到相关文件
      String filePath = this.smUploadfileService.getAbsFilePath(smUploadfile.getPath() + smUploadfile.getId());
      InputStream is = new FileInputStream(filePath);
      HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
      //2.循环工作簿进行解析取值
      for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++)
      {
        TpTestdataVO tpTestdataVO = new TpTestdataVO();
        tpTestdataVO.setFileId(smUploadfile.getId());
        HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
        System.out.println("===========" + hssfSheet.getSheetName());
        //3.判断工作面是否为空,如果不为空,则进行解析操作
        if (hssfSheet != null)
        {
          //4.获取第0行的内容
          HSSFRow hssfRow0 = hssfSheet.getRow(0);
      //5.获取第0行第1列的内容
      hssfRow0.getCell(0)
        }
    }
  }
  /**
   * 解析word文件内容-马康-2016年12月14日10:38:38
   * @param smUploadfile 传入的文件内容
   * @return
   */
  private Map<String, Object> testWordImport(SmUploadfile smUploadfile)
  {
      //1.通过路径获取文件
      String filePath = this.smUploadfileService.getAbsFilePath(smUploadfile.getPath() + smUploadfile.getId());
      //2.通过路径获取字节流
      FileInputStream in = new FileInputStream(filePath);
      POIFSFileSystem pfs = new POIFSFileSystem(in);
      HWPFDocument hwpf = new HWPFDocument(pfs);
    //3.获取字节流的组个数
      Range range = hwpf.getRange();
      TableIterator it = new TableIterator(range);
      //4.循环模板表
      while (it.hasNext())
      {
        System.out.println("table===============");
        //5.获得world中的下一个表格信息
        Table tb = it.next();
        //6.获得第一行的内容
        TableRow tr0 = tb.getRow(0);
    //7.获取行数
        int asdfaf =tb.numRows();
    //8.获取列内容
    TableCell td = tr0.getCell(1);
        String content = getCellText(td.text().replace(" ", ""));
    }
  }
    private String getCellText(String text)
  {
    return text.replace("\007", "");
  }
}
-
相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
阿里云实时数仓实战 - 用户行为数仓搭建
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3&nbsp;)前置知识要求:熟练掌握 SQL 语法熟悉 Linux 命令,对 Hadoop 大数据体系有一定的了解 &nbsp; 课程大纲 第一章&nbsp;了解数据仓库概念 初步了解数据仓库是干什么的 第二章&nbsp;按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章&nbsp;数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章&nbsp;采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章&nbsp;用户行为数据仓库 严格按照企业的标准开发 第六章&nbsp;搭建业务数仓理论基础和对表的分类同步 第七章&nbsp;业务数仓的搭建&nbsp; 业务行为数仓效果图&nbsp;&nbsp;
相关文章
|
4月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
138 10
|
10月前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
643 5
|
9月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
1789 65
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
6月前
|
人工智能 自然语言处理 搜索推荐
ViDoRAG:开源多模态文档检索框架,多智能体推理+图文理解精准解析文档
ViDoRAG 是阿里巴巴通义实验室联合中国科学技术大学和上海交通大学推出的视觉文档检索增强生成框架,基于多智能体协作和动态迭代推理,显著提升复杂视觉文档的检索和生成效率。
290 8
ViDoRAG:开源多模态文档检索框架,多智能体推理+图文理解精准解析文档
|
6月前
|
机器学习/深度学习 人工智能 文字识别
从“泛读”到“精读”:合合信息文档解析如何让大模型更懂复杂文档?
随着deepseek等大模型逐渐步入视野,理论上文档解析工作应能大幅简化。 然而,实际情况却不尽如人意。当前的多模态大模型虽然具备强大的视觉与语言交互能力,但在解析非结构化文档时,仍面临复杂版式、多元素混排以及严密逻辑推理等挑战。
173 0
|
9月前
|
人工智能 自然语言处理 JavaScript
Univer:开源全栈 AI 办公工具,支持 Word、Excel、PPT 等文档处理和多人实时协作
Univer 是一款开源的 AI 办公工具,支持 Word、Excel 等文档处理的全栈解决方案。它具有强大的功能、高度的可扩展性和跨平台兼容性,适用于个人和企业用户,能够显著提高工作效率。
1153 9
Univer:开源全栈 AI 办公工具,支持 Word、Excel、PPT 等文档处理和多人实时协作
|
10月前
|
存储 人工智能 自然语言处理
高效档案管理案例介绍:文档内容批量结构化解决方案解析
档案文件内容丰富多样,传统人工管理耗时低效。思通数科AI平台通过自动布局分析、段落与标题检测、表格结构识别、嵌套内容还原及元数据生成等功能,实现档案的高精度分块处理和结构化存储,大幅提升管理和检索效率。某历史档案馆通过该平台完成了500万页档案的数字化,信息检索效率提升60%。
334 5
|
10月前
|
自然语言处理 并行计算 数据可视化
免费开源法律文档比对工具:技术解析与应用
这款免费开源的法律文档比对工具,利用先进的文本分析和自然语言处理技术,实现高效、精准的文档比对。核心功能包括文本差异检测、多格式支持、语义分析、批量处理及用户友好的可视化界面,广泛适用于法律行业的各类场景。
446 1
|
11月前
|
前端开发 JavaScript
💥【exceljs】纯前端如何实现Excel导出下载和上传解析?
本文介绍了用于处理Excel文件的库——ExcelJS,相较于SheetJS,ExcelJS支持更高级的样式自定义且易于使用。表格对比显示,ExcelJS在样式设置、内存效率及流式操作方面更具优势。主要适用于Node.js环境,也支持浏览器端使用。文中详细展示了如何利用ExcelJS实现前端的Excel导出下载和上传解析功能,并提供了示例代码。此外,还提供了在线调试的仓库链接和运行命令,方便读者实践。
1120 5
|
2月前
|
Python
如何根据Excel某列数据为依据分成一个新的工作表
在处理Excel数据时,我们常需要根据列值将数据分到不同的工作表或文件中。本文通过Python和VBA两种方法实现该操作:使用Python的`pandas`库按年级拆分为多个文件,再通过VBA宏按班级生成新的工作表,帮助高效整理复杂数据。

推荐镜像

更多
  • DNS