poi导出excel为html,使用POI把Word Excel转为HTML

packagecom.wzh.poi;importjava.io.BufferedWriter;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStreamWriter;importjava.io.UnsupportedEncodingException;importjava.util.List;importjava.util.logging.Level;importjava.util.logging.Logger;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.parsers.ParserConfigurationException;importjavax.xml.transform.OutputKeys;importjavax.xml.transform.Transformer;importjavax.xml.transform.TransformerConfigurationException;importjavax.xml.transform.TransformerException;importjavax.xml.transform.TransformerFactory;importjavax.xml.transform.dom.DOMSource;importjavax.xml.transform.stream.StreamResult;importorg.apache.poi.hssf.converter.ExcelToHtmlConverter;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;importorg.apache.poi.hwpf.HWPFDocument;importorg.apache.poi.hwpf.converter.PicturesManager;importorg.apache.poi.hwpf.converter.WordToHtmlConverter;importorg.apache.poi.hwpf.usermodel.Picture;importorg.apache.poi.hwpf.usermodel.PictureType;importorg.w3c.dom.Document;/*** @date 2015-3-16 17:22:05

*@authory

* @desc*/

public classPoiUtil {/*** Excel 转为 HTML

*@paramfileName

*@paramoutputFile

*@throwsFileNotFoundException

*@throwsIOException

*@throwsParserConfigurationException

*@throwsTransformerConfigurationException

*@throwsTransformerException*/

public static voidexcelToHtml(String fileName, String outputFile)throwsFileNotFoundException, IOException, ParserConfigurationException,

TransformerConfigurationException, TransformerException {

InputStream is= newFileInputStream(fileName);

HSSFWorkbook excelBook= newHSSFWorkbook(is);

ExcelToHtmlConverter ethc= newExcelToHtmlConverter(

DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());

ethc.setOutputColumnHeaders(false);

ethc.setOutputRowNumbers(false);

ethc.processWorkbook(excelBook);

Document htmlDocument=ethc.getDocument();

ByteArrayOutputStream out= newByteArrayOutputStream();

DOMSource domSource= newDOMSource(htmlDocument);

StreamResult streamResult= newStreamResult(out);

TransformerFactory tf=TransformerFactory.newInstance();

Transformer serializer=tf.newTransformer();

serializer.setOutputProperty(OutputKeys.ENCODING,"UTF-8");

serializer.setOutputProperty(OutputKeys.INDENT,"yes");

serializer.setOutputProperty(OutputKeys.METHOD,"html");

serializer.transform(domSource, streamResult);

out.close();

String htmlStr= newString(out.toByteArray());

htmlStr= htmlStr.replace("

Sheet1

", "")

.replace("

Sheet2

", "")

.replace("

Sheet3

", "")

.replace("

Sheet4

", "")

.replace("

Sheet5

", "");

writeFile(htmlStr, outputFile);

}/*** Word 转为 HTML

*

*@paramfileName

*@paramoutputFile

*@throwsIOException

*@throwsParserConfigurationException

*@throwsTransformerException*/

public static void wordToHtml(String fileName, String outputFile) throwsIOException, ParserConfigurationException, TransformerException {

HWPFDocument wordDoc= new HWPFDocument(newFileInputStream(fileName));

WordToHtmlConverter wthc= newWordToHtmlConverter(

DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());

wthc.setPicturesManager(newPicturesManager() {

@Overridepublic String savePicture(byte[] bytes, PictureType pt, String string, float f, floatf1) {returnstring;

}

});

wthc.processDocument(wordDoc);

List pics =wordDoc.getPicturesTable().getAllPictures();if (null != pics && pics.size() > 0) {for(Picture pic : pics) {

pic.writeImageContent(newFileOutputStream(pic.suggestFullFileName()));

}

}

Document htmlDocument=wthc.getDocument();

ByteArrayOutputStream out= newByteArrayOutputStream();

DOMSource domSource= newDOMSource(htmlDocument);

StreamResult streamResult= newStreamResult(out);

TransformerFactory tf=TransformerFactory.newInstance();

Transformer serializer=tf.newTransformer();

serializer.setOutputProperty(OutputKeys.ENCODING,"UTF-8");

serializer.setOutputProperty(OutputKeys.INDENT,"yes");

serializer.setOutputProperty(OutputKeys.METHOD,"html");

serializer.transform(domSource, streamResult);

out.close();

String htmlStr= newString(out.toByteArray());

writeFile(htmlStr, outputFile);

}public static voidwriteFile(String content, String path) {

FileOutputStream fos= null;

BufferedWriter bw= null;

File file= newFile(path);try{

fos= newFileOutputStream(file);

bw= new BufferedWriter(new OutputStreamWriter(fos, "UTF-8"));

bw.write(content);

}catch(FileNotFoundException ex) {

Logger.getLogger(PoiUtil.class.getName()).log(Level.SEVERE, null, ex);

}catch(UnsupportedEncodingException ex) {

Logger.getLogger(PoiUtil.class.getName()).log(Level.SEVERE, null, ex);

}catch(IOException ex) {

Logger.getLogger(PoiUtil.class.getName()).log(Level.SEVERE, null, ex);

}finally{try{if (null !=bw) {

bw.close();

}if (null !=fos) {

fos.close();

}

}catch(IOException ex) {

Logger.getLogger(PoiUtil.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值