/src/main/java/com/eastrobot/doc/util/POIUtils.java

https://github.com/ekoz/kbase-doc · Java · 104 lines · 69 code · 11 blank · 24 comment · 0 complexity · 1de530ed50b3a94f383ec5215e7ff744 MD5 · raw file

  1. /*
  2. * Power by www.xiaoi.com
  3. */
  4. package com.eastrobot.doc.util;
  5. import java.io.ByteArrayOutputStream;
  6. import java.io.File;
  7. import java.io.FileInputStream;
  8. import java.io.FileNotFoundException;
  9. import java.io.IOException;
  10. import javax.xml.parsers.DocumentBuilderFactory;
  11. import javax.xml.parsers.ParserConfigurationException;
  12. import javax.xml.transform.OutputKeys;
  13. import javax.xml.transform.Transformer;
  14. import javax.xml.transform.TransformerConfigurationException;
  15. import javax.xml.transform.TransformerException;
  16. import javax.xml.transform.TransformerFactory;
  17. import javax.xml.transform.TransformerFactoryConfigurationError;
  18. import javax.xml.transform.dom.DOMSource;
  19. import javax.xml.transform.stream.StreamResult;
  20. import org.apache.commons.io.IOUtils;
  21. import org.apache.poi.hssf.converter.ExcelToHtmlConverter;
  22. import org.apache.poi.hssf.converter.ExcelToHtmlUtils;
  23. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  24. import org.apache.poi.hwpf.HWPFDocumentCore;
  25. import org.apache.poi.hwpf.converter.WordToHtmlConverter;
  26. import org.apache.poi.hwpf.converter.WordToHtmlUtils;
  27. import org.w3c.dom.Document;
  28. /**
  29. * @author <a href="mailto:eko.z@outlook.com">eko.zhan</a>
  30. * @date 2017年8月3日 下午8:34:35
  31. * @version 1.0
  32. */
  33. public class POIUtils {
  34. /**
  35. * word to html
  36. * @author eko.zhan at 2017年8月3日 下午8:51:23
  37. * @param file
  38. * @return
  39. * @throws ParserConfigurationException
  40. * @throws FileNotFoundException
  41. * @throws IOException
  42. * @throws TransformerException
  43. */
  44. public static String wordToHtml(File file){
  45. String result = "";
  46. ByteArrayOutputStream out = null;
  47. try {
  48. HWPFDocumentCore wordDocument = WordToHtmlUtils.loadDoc(file);
  49. WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(
  50. DocumentBuilderFactory.newInstance().newDocumentBuilder()
  51. .newDocument());
  52. wordToHtmlConverter.processDocument(wordDocument);
  53. Document htmlDocument = wordToHtmlConverter.getDocument();
  54. out = new ByteArrayOutputStream();
  55. DOMSource domSource = new DOMSource(htmlDocument);
  56. StreamResult streamResult = new StreamResult(out);
  57. TransformerFactory tf = TransformerFactory.newInstance();
  58. Transformer serializer = tf.newTransformer();
  59. serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
  60. serializer.setOutputProperty(OutputKeys.INDENT, "yes");
  61. serializer.setOutputProperty(OutputKeys.METHOD, "html");
  62. serializer.transform(domSource, streamResult);
  63. result = new String(out.toByteArray());
  64. } catch (FileNotFoundException e) {
  65. e.printStackTrace();
  66. } catch (TransformerConfigurationException e) {
  67. e.printStackTrace();
  68. } catch (IllegalArgumentException e) {
  69. e.printStackTrace();
  70. } catch (IOException e) {
  71. e.printStackTrace();
  72. } catch (ParserConfigurationException e) {
  73. e.printStackTrace();
  74. } catch (TransformerFactoryConfigurationError e) {
  75. e.printStackTrace();
  76. } catch (TransformerException e) {
  77. e.printStackTrace();
  78. } finally {
  79. IOUtils.closeQuietly(out);
  80. }
  81. return result;
  82. }
  83. /**
  84. * excel to html
  85. * @author eko.zhan at 2017年8月3日 下午9:36:51
  86. * @param file
  87. * @return
  88. */
  89. public static String excelToHtml(File file){
  90. String result = "";
  91. return result;
  92. }
  93. }