最近项目需要读取用户world文件,将其入库。
直接上代码
/**
* 用途说明:读取docx类型文档内容并将其内容保存到数据库(word2007、word2010等版本)
*
*
* 算法说明:采用POI来读取后缀为docx类型的word文件,
* 将文档内容保存到相应表中的相应字段
*
* 注意事项:.
*
* @param JDBCHelper helper
* @param String address 文件地址
* @author wzs
* @version 2011-12-6
*
*/
public boolean readDocx(JDBCHelper helper,String address) {
boolean flag = false;
String caseNum = "";//案卷号
try {
OPCPackage opcPackage = POIXMLDocument.openPackage(address);
XWPFDocument xwdoc = new XWPFDocument(opcPackage);
Iterator<XWPFTable> it = xwdoc.getTablesIterator();
int i = 0;//循环读取案件号,world中表格之外的内容
/**
* 读取表格之外的案卷号
* (前提:标准表格,存在案卷号。)
*/
while(1>0){
String str = xwdoc.getParagraphArray(i).getText();//以每个回车为一行读取
String[] strArr = str.split(":");
if(strArr.length>0){//如果此行为案卷号,则取出案卷号
if("案卷号".equals(strArr[0])){ //前提:world格式为 案卷号:2011海淀管字353144
caseNum = strArr[1];
break;//取出案卷号后跳出循环
}
}
i++;//若果本行没有案卷号则继续循环直到找到案卷号所在行
}
while (it.hasNext()) {
XWPFTable table = it.next();
String []obj = new String[2];
int num = table.getNumberOfRows();//获取表格行数
for(int k = 0; k< num ; k++){
int tnum = table.getRow(i).getTableCells().size();//表格列数
for(int j = 0;j < tnum; j++){
System.out.println(" 第 "+ k +"行 --第"+j+"列 --"+table.getRow(k).getTableCells().get(j).getText());
flag = this.addItemsCaseReport(helper,obj);//将数据保存入库
}
}
}
} catch (Exception e) {
log.error("读取world出错!",e);
}
return flag;
}
/**
* 用途说明:读取doc类型文档内容并将其内容保存到数据库(word2003等版本)
*
*
* 算法说明:采用POI来读取后缀为doc类型的word文件,
* 将文档内容保存到相应表中的相应字段
*
* 注意事项:.
*
* @param JDBCHelper helper
* @param String address 文件地址
*
* @author wzs
* @version 2011-12-6
*/
public boolean readDoc(JDBCHelper helper,String address) {
boolean flag = false;
String caseNum = "";//案卷号
try{
FileInputStream in = new FileInputStream(address);//载入文档
POIFSFileSystem pfs = new POIFSFileSystem(in);
HWPFDocument hwpf = new HWPFDocument(pfs);
Range range = hwpf.getRange();//得到文档的读取范围
int n = 0;//循环读取案件号,world中表格之外的内容
/**
* 读取表格之外的案卷号
* (前提:标准表格,存在案卷号。)
*/
while(1>0){
String str = range.getParagraph(i).text();//以每个回车为一行读取
String[] strArr = str.split(":");
if(strArr.length>0){//如果此行为案卷号,则取出案卷号
if("案卷号".equals(strArr[0])){ //前提:world格式为 案卷号:2011海淀管字353144
caseNum = strArr[1];
break;//取出案卷号后跳出循环
}
}
n++;//若果本行没有案卷号则继续循环直到找到案卷号所在行
}
TableIterator it = new TableIterator(range);
//迭代文档中的表格
while (it.hasNext()) {
Table tb = (Table) it.next();
//迭代行,默认从0开始
for (int i = 0; i < tb.numRows(); i++) {
TableRow tr = tb.getRow(i);
//迭代列,默认从0开始
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);//k为第几个回车
String s = para.text();
System.out.println("第"+i+"行---第"+j+"列---"+k+"-- "+s);
} //end for
} //end for
} //end for
} //end while
}catch(Exception e){
log.error("读取doc文件出错!",e);
}
return flag;
}
分享到:
相关推荐
通过Java Poi 解析EXCEL数据,内附实现代码,绝对可以用。要分不为别的,只为能给个评论。
JAVA用poi解析doc、docx、slx、xlsx,代码我整合在一个类中,生成的是一个html,自己仔细阅读,大部分功能都能实现了,附带了POI3.8给大家
JAVA用poi解析doc、docx、slx、xlsx,代码我整合在一个类中,生成的是一个html,自己仔细阅读,大部分功能都能实现了,附带了POI3.8给大家
java poi官方文档,开发java poi必备,纯java支持微软办公软件的类库
在做项目的时候,发现使用POI无法解析以csv文件结尾的文件,虽然csv文件能用Excel打开,但是csv文件没有像Excel一样有规定的电子表格形式,故使用POI无法解析csv文件,在网上找了一下,发现java有提供java csv文件来...
POI 解析 world、excel,包含解析实例和POI jar包
这次的项目中遇到了Excel批量添加的数据,使用到了Poi解析Execl技术。本人就做了一个Demo,项目使用的是maven,需要的jar都在上面。
POI解析word2007文本及图片(已测试).doc
JAVA POI Excel转Html,代码和所需的jar都在压缩包,项目在线预览需求,实现后分享下
使用poi解析excel文件,并将数据写入到数据库 项目说明 这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL...
JAVA poi-4.1.2 完整包,操作excel,word,ppt必备。Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
poi导出world、excel的demo
java技术,利用工具类poi解析Excel文档示例
Java POI 生成Word文档,支持图片插入,关键是修改XML部分,本人已测试通过。
POI解析多个Sheet页面的Excel,有注释,绝对看得懂,绝对正确!
通过poi解析Excel示例
java POI 通过MultipartFileExcel文件解析写入数据库
java 使用 poi 解析导入大数据量(几万数据量+)时,报出OOM。这是使用POI 第二种处理方法,解决大数据量导入内存溢出问题,并提升效率
附件包含一个web项目,是一个简单的解析excel和word的例子,项目中包含jar poi解析excel、word2007,2010等版本
java使用poi技术解析word文档,简易分析,希望对大家有帮助!