当前位置:首页 > 实用技巧 >

java将word里的表格导入到数据库(java实现导入excel数据到数据库)

来源:原点资讯(www.yd166.com)时间:2023-05-11 07:21:11作者:YD166手机阅读>>

一、导入相关的依赖包

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.17</version> </dependency>

java将word里的表格导入到数据库,java实现导入excel数据到数据库(1)

三、实现相应的工具类

import org.apache.poi.hwpf.extractor.WordExtractor; import org.springframework.util.StringUtils; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; public class Wordutil { public static void main(String[] args) throws Exception { Wordutil wordutil=new Wordutil(); wordutil.testReadByExtractor("/xxxx/xxxx/xxxxxxxxxx.doc); } public void testReadByExtractor(String absolutePath) throws Exception { InputStream is = new FileInputStream(absolutePath); WordExtractor extractor = new WordExtractor(is); //获取各个段落的文本,这种适合简单的文本格式 String paraTexts[] = extractor.getParagraphText(); for (int i=0; i<paraTexts.length; i ) { System.out.println(paraTexts[i]); } this.closeStream(is); } /** * 关闭输入流 * @param is */ private void closeStream(InputStream is) { if (!StringUtils.isEmpty(is)) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } }

java将word里的表格导入到数据库,java实现导入excel数据到数据库(2)

三、如果是表格形式的需要根据是docx版本或者是doc版本使用XWPFDocument,以及HWPFDocument进行读取相应的文件,word文档中表格的读取,如果是用模板.ftl文件导出的word,无法进行相应的读取,需要重新将文件进行另存为,然后再一次读取。

其中需要的依赖包

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.0</version> </dependency> <!--处理word文档需要的额外的jar包--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.0</version> </dependency> <!--处理word文档需要的额外的jar包--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>4.1.0</version> </dependency>

java将word里的表格导入到数据库,java实现导入excel数据到数据库(3)

四、代码的实现

import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.usermodel.*; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFTable; import org.apache.poi.xwpf.usermodel.XWPFTableCell; import org.apache.poi.xwpf.usermodel.XWPFTableRow; import org.springframework.util.StringUtils; import java.io.FileInputStream; import java.util.Iterator; import java.util.List; /** * word文档中表格的读取,如果是用模板.ftl文件导出的word,无法进行相应的读取, * 需要将word文档另存为 */ public class DocTableReadUtil { /** * 读取文档中表格 */ public static String getWord(String filePath) { String wordContent = ""; String tmpWord = "";//报告录入人: 录入时间: try { FileInputStream in = new FileInputStream(filePath);//载入文档 // 处理docx格式 即office2007以后版本 if (filePath.toLowerCase().endsWith("docx")) { //word 2007 图片不会被读取, 表格中的数据会被放在字符串的最后 XWPFDocument xwpf = new XWPFDocument(in);//得到word文档的信息 Iterator<XWPFTable> it = xwpf.getTablesIterator();//得到word中的表格 // 设置需要读取的表格 set是设置需要读取的第几个表格,total是文件中表格的总数 int set = 4; // 过滤前面不需要的表格 for (int i = 0; i < set - 1; i ) { it.hasNext(); it.next(); } while (it.hasNext()) { XWPFTable table = it.next(); List<XWPFTableRow> rows = table.getRows(); //读取每一行数据 String tableTxt = ""; for (int i = 0; i < rows.size(); i ) { XWPFTableRow row = rows.get(i); String rowTxt = "<tr>"; //读取每一列数据 List<XWPFTableCell> cells = row.getTableCells(); for (int j = 0; j < cells.size(); j ) { XWPFTableCell cell = cells.get(j); //输出当前的单元格的数据 //输出结果------------- } } } } else { // 处理doc格式 即office2003版本 POIFSFileSystem pfs = new POIFSFileSystem(in); HWPFDocument hwpf = new HWPFDocument(pfs); Range range = hwpf.getRange();//得到文档的读取范围 TableIterator it = new TableIterator(range); // 迭代文档中的表格 // 如果有多个表格只读取需要的一个 set是设置需要读取的第几个表格,total是文件中表格的总数 int set = 4; for (int i = 0; i < set - 1; i ) { it.hasNext(); it.next(); } while (it.hasNext()) { Table tb = it.next(); //迭代行,默认从0开始,可以依据需要设置i的值,改变起始行数,也可设置读取到那行,只需修改循环的判断条件即可 String table = ""; for (int i = 0; i < tb.numRows(); i ) { TableRow tr = tb.getRow(i); //迭代列,默认从0开始 String row = "<tr>"; for (int j = 0; j < tr.numCells(); j ) { TableCell td = tr.getCell(j);//取得单元格 //取得单元格的内容 for (int k = 0; k < td.numParagraphs(); k ) { Paragraph para = td.getParagraph(k); String s = para.text(); //输出结果------------- } } } } } } catch (Exception e) { //初始化时,处理是否将word转化为html的标签,存入数据库中,如果出现异常抛出 e.printStackTrace(); } return wordContent; } }

java将word里的表格导入到数据库,java实现导入excel数据到数据库(4)

java将word里的表格导入到数据库,java实现导入excel数据到数据库(5)

java将word里的表格导入到数据库,java实现导入excel数据到数据库(6)

栏目热文

怎样正确用洗衣机(新手怎么使用洗衣机)

怎样正确用洗衣机(新手怎么使用洗衣机)

洗衣机可以说是家务劳动的最得力“帮手”之一,极大地减少了家庭清洁衣物和家纺带来的劳动量。经济日报-中国经济网提示,洗衣机...

2023-05-11 07:15:31查看全文 >>

洗衣机怎么使用步骤(洗衣机怎么操作步骤图)

洗衣机怎么使用步骤(洗衣机怎么操作步骤图)

对于洗衣机的使用来说,很多朋友应该都会觉得自己已经很熟悉了,毕竟每天都要用。但是有些地方,还是有不少的人经常的忽略掉,所...

2023-05-11 06:46:43查看全文 >>

停车时如何判断左右人和车距离(停车如何判断前后车距离口诀)

停车时如何判断左右人和车距离(停车如何判断前后车距离口诀)

无论是在侧方位停车时还是在倒库停车时,也无论是左侧还是右侧,我们都需要对相邻车辆进行车距判断,那在车内驾驶员位置,如何做...

2023-05-11 06:43:13查看全文 >>

停车怎样判断与两侧车的距离(停车时怎么判断右侧车距离)

停车怎样判断与两侧车的距离(停车时怎么判断右侧车距离)

对于司机来说,停车、入库都是小意思,但是对于很多新手司机,倒车入库则是很多刚从驾校出来的新手的一大死穴:新手们不明白,自...

2023-05-11 07:12:45查看全文 >>

亲子阅读成长记录册怎么写(亲子阅读记录模板)

亲子阅读成长记录册怎么写(亲子阅读记录模板)

书像一盏长明灯,等待你每一次注视它的眼眸。从呱呱坠地,书的角色即像一位贴心的挚友,又像一个教会你通达古今的老师。...

2023-05-11 06:59:18查看全文 >>

用java怎么写excel导入工具(excel导入导出java解决方案推荐)

用java怎么写excel导入工具(excel导入导出java解决方案推荐)

java-excel-utils是JAVA操作 Excel 导入导出的工具类,目的是简化逻辑操作、可拓展 Excel 导...

2023-05-11 07:27:02查看全文 >>

java把excel表格数据导入到数据库(java实现导入excel数据到数据库)

java把excel表格数据导入到数据库(java实现导入excel数据到数据库)

工作中,我们如果在大公司上班,经常有程序员和非程序员之分,而且公司大了,每天都要产生大量数据,怎么储存数据呢?对于程序员...

2023-05-11 07:16:42查看全文 >>

java操作excel表导入数据库(java操作excel导入表)

java操作excel表导入数据库(java操作excel导入表)

如果项目经理给你一个Excel表格数据,让你把这些数据插入数据库,你会怎么操作?大部分想的就是通过Java代码拼接成S...

2023-05-11 06:47:07查看全文 >>

java将excel导入数据库(java操作excel直接导入数据库)

java将excel导入数据库(java操作excel直接导入数据库)

由于篇幅有限,csdn的上传在60M内,jar包加起来就超过了,这里只保存了关键的源代码,想要详细的源代码可以私信我。...

2023-05-11 07:21:45查看全文 >>

java将大量excel数据导入数据库(java操作excel直接导入数据库)

java将大量excel数据导入数据库(java操作excel直接导入数据库)

1、导入模板是用来给系统使用者在导入数据时使用的,有了导入模板就相当于有了一个导入的规范,确定需要导入哪些列来让使用者填...

2023-05-11 06:50:45查看全文 >>

文档排行