更新日期:2015-10-12
package com.hrhx.mcc.util;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.List;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.converter.ExcelToHtmlConverter;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.converter.PicturesManager;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
import org.apache.poi.hwpf.usermodel.Picture;
import org.apache.poi.hwpf.usermodel.PictureType;
import org.w3c.dom.Document;
public class PoiToHtmlUtil {
/**
*
* @param path 所在的文件夹
* @param inFileName 输入Word文档
* @param outFileName 输出Html文档
* @throws Throwable
*/
public static void wordToHtml(String path,String inFileName,String outFileName) throws Throwable {
InputStream input = new FileInputStream(path + inFileName);
HWPFDocument wordDocument = new HWPFDocument(input);
WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
wordToHtmlConverter.setPicturesManager(new PicturesManager() {
public String savePicture(byte[] content, PictureType pictureType,
String suggestedName, float widthInches, float heightInches) {
return suggestedName;
}
});
wordToHtmlConverter.processDocument(wordDocument);
List<Picture> pics = wordDocument.getPicturesTable().getAllPictures();
if (pics != null) {
for (int i = 0; i < pics.size(); i++) {
Picture pic = (Picture) pics.get(i);
try {
pic.writeImageContent(new FileOutputStream(path
+ pic.suggestFullFileName()));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
Document htmlDocument = wordToHtmlConverter.getDocument();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
DOMSource domSource = new DOMSource(htmlDocument);
StreamResult streamResult = new StreamResult(outStream);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer serializer = tf.newTransformer();
serializer.setOutputProperty(OutputKeys.ENCODING, "gb2312");
serializer.setOutputProperty(OutputKeys.INDENT, "yes");
serializer.setOutputProperty(OutputKeys.METHOD, "html");
serializer.transform(domSource, streamResult);
outStream.close();
String content = new String(outStream.toByteArray());
FileUtils.write(new File(path, outFileName), content, "gb2312");
}
/**
*
* @param path 所在的文件夹
* @param inFileName 输入Excel文档
* @param outFileName 输出Html文档
* @throws Throwable
*/
@SuppressWarnings("rawtypes")
public static String excelToHtml(String path,String inFileName) throws Throwable {
InputStream input = new FileInputStream(path +"/"+ inFileName);
HSSFWorkbook excelBook = new HSSFWorkbook(input);
ExcelToHtmlConverter excelToHtmlConverter = new ExcelToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
//去掉Excel头行
excelToHtmlConverter.setOutputColumnHeaders(false);
//去掉Excel行号
excelToHtmlConverter.setOutputRowNumbers(false);
excelToHtmlConverter.processWorkbook(excelBook);
List pics = excelBook.getAllPictures();
if (pics != null) {
for (int i = 0; i < pics.size(); i++) {
Picture pic = (Picture) pics.get(i);
try {
pic.writeImageContent(new FileOutputStream(path
+ pic.suggestFullFileName()));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
Document htmlDocument = excelToHtmlConverter.getDocument();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
DOMSource domSource = new DOMSource(htmlDocument);
StreamResult streamResult = new StreamResult(outStream);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer serializer = tf.newTransformer();
serializer.setOutputProperty(OutputKeys.ENCODING, "gb2312");
serializer.setOutputProperty(OutputKeys.INDENT, "yes");
serializer.setOutputProperty(OutputKeys.METHOD, "html");
//excelToHtmlConverter.OutputColumnHeaders = false;
serializer.transform(domSource, streamResult);
outStream.close();
String content = new String(outStream.toByteArray());
//去掉Excel中的列A B C D
//content = StringUtil.regexReplaceStr(content,"<thead>[^<]*[^d]*[^i]*[^v]*[^>]*</thead>", "");
//去掉Excel中的行1 2 3
//content = StringUtil.regexReplaceStr(content,"<th class=\"rownumber\">.*?</th>","<th class=\"rownumber\"></th>");
return content;
//FileUtils.write(new File(path, outFileName), content, "gb2312");
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
使用POI筛选字段导出Excel,以及条件查询和指定数据导出
JAVA不使用POI,用PageOffice动态导出Word文档[参考].pdf
老师给的Java poi操作EXcel和Word的部分代码,这是一个工程的部分内容。大系统是为了实现数据库导出为Word或office文档。
Apache POI 是用 Java 编写的开源跨平台的 Java API,提供 API 给 Java 程式对 Microsoft Office 格式档案读和写的功能。简而言之,你可以使用 Java 读取和写入 MS Excel 文件,也可以读取和写入 MS Word 和 MS ...
poi是java和office的桥梁,导入导出excel文件 poi是java和office的桥梁,导入导出excel文件 poi是java和office的桥梁,导入导出excel文件
POI 提供API给Java程序对Microsoft Office格式档案读和写的功能,尤其是在操作Excel文档上面。本例采用javabean + 注解的方式,对POI进行了封装,旨在针对不同的Excel文档用同样的方法处理,已到达代码的重复利用。...
Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和...
POI ,xdocreport框架是一个半成品,往往使用默认的解析结果无法满足业务需求,花了很长时间和心血研究了其源码,修复了以下问题 问题1: xdocreport能解析word转html,但解析出来的是基于word的整套html,往往我们的...
Java工具包,用于把数据库中数据导出,制作成office文档的帮助CHM格式文档; 版本是poi-3.15 下载链接http://poi.apache.org/download.html
该资源为test项目。Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
导出Excel文件利用apache的poi第三方包,可在阿帕奇官网下载(最新版本为3.8,支持office2010)。解压文件后,只需要把项目导入到eclipse,再将hibernate.cfg.xml里连接Oracle的URL和用户名、密码更改下。参考entity...
小demo,直接运行Test.java就行了 导出文件在D盘
开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一个是apache 的poi, 另一个是 Java Excel Apache POI 简介是用Java编写的免费开源的跨平台的 Java API,Apache POI...
基于Java语言来导出Word文档的方式也有很多种,如Jacob,Apache POI,Freemarker,PageOffice,java2word 等等。。。。 在这里将通过Freemarker这个模板引擎来实现导出 Word,项目不限于Swing,SSH,SSM,Spring ...
Apache POI的主要目标是提供一种简单、可靠的方式来使用Java程序操作这些常见的文件格式。 Apache POI库的结构分为几个部分,每个部分都提供了针对不同Office格式文件的功能。对于Excel文件,POI提供了HSSF和XSSF两...
Java语言利用POI读取excel文档,利用Freemarker建立word模板(带图片),excel每一行数据生成单个word文档,再利用POI合并成一个word文档(源码); 博客地址:...
Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“简洁版的模糊实现...
经典POI解析execl 很方便 解析2003及2007 office版本都可以,希望对你有很好的帮助。
在Spring Boot中实现Excel的导入导出可以通过POI库来实现,POI是一个开源的Java库,用于处理Microsoft Office格式文件,包括Excel。一个简单的示例,演示如何在Spring Boot项目中使用POI来实现Excel的导入导出功能。...
java poi 教程 读取和导出Excel,world等office文件