1.Maven工程中主要添加的依赖
<!--处理excel、word--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.10-FINAL</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.10-FINAL</version> <type>jar</type> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.10-FINAL</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.10-FINAL</version> <type>jar</type> <scope>compile</scope> </dependency> <!--处理CSV--> <dependency> <groupId>net.sourceforge.javacsv</groupId> <artifactId>javacsv</artifactId> <version>2.0</version> </dependency>
2.直接上代码
import java.io.BufferedOutputStream; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.net.URISyntaxException; import java.util.List; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.apache.commons.io.output.ByteArrayOutputStream; import org.apache.log4j.Logger; import org.apache.poi.hssf.converter.ExcelToHtmlConverter; import org.apache.poi.hssf.usermodel.HSSFPictureData; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; import org.w3c.dom.Document; /** * java将excel转换为HTML * @author wu.85@163.com */ public class Excel2Html { private static final Logger logger = Logger.getLogger(Excel2Html.class.getName()); private static final String DEFAULT_PICTURE_FOLDER = "pictures"; private static final String DEFAULT_HTML_TYPE = ".html";// 默认转换的HTML文件后缀 public static void main(String[] args) { File outputFolder = null; File outputPictureFolder = null; try { // 转换后HTML文件存放位置 outputFolder = new File(Excel2Html.class.getResource("").toURI()); if (null != outputFolder) { // 转换后原excel中图片存放位置 String outputPictureFolderPath = outputFolder.getAbsolutePath() + File.separator + DEFAULT_PICTURE_FOLDER; outputPictureFolder = new File(outputPictureFolderPath); outputPictureFolder.mkdir(); } } catch (URISyntaxException e1) { } try { // 被转换的excel文件 File convertedWordFile = new File( "C://Users//Lenovo//Desktop//java将excel转换为HTML.xls"); convert2Html(convertedWordFile, outputFolder, outputPictureFolder); } catch (Exception e) { e.printStackTrace(); } } public static void writeFile(String content, String path) { FileOutputStream fos = null; BufferedWriter bw = null; try { File file = new File(path); fos = new FileOutputStream(file); bw = new BufferedWriter(new OutputStreamWriter(fos, "UTF-8")); bw.write(content); } catch (FileNotFoundException fnfe) { fnfe.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } finally { try { if (bw != null) bw.close(); if (fos != null) fos.close(); } catch (IOException ie) { } } } public static Workbook getWorkbook(File file) { Workbook workbook = null; try { if (null != file && file.exists()) { workbook = WorkbookFactory.create(file); } } catch (IOException e) { logger.error("IOException in getWorkbook:", e); } catch (InvalidFormatException e) { logger.error("InvalidFormatException in getWorkbook:", e); } return workbook; } /** * @param excelFile 被转换的word文件 * @param outputFolder 转换后HTML文件存放位置 * @param outputPictureFolder 转换后原word中图片存放位置 * @throws TransformerException * @throws IOException * @throws ParserConfigurationException */ public static void convert2Html(File excelFile, File outputFolder, final File outputPictureFolder) throws TransformerException, IOException, ParserConfigurationException { // 创建excel ExcelToHtmlConverter对象 ExcelToHtmlConverter excelToHtmlConverter = new ExcelToHtmlConverter( DocumentBuilderFactory.newInstance().newDocumentBuilder() .newDocument()); excelToHtmlConverter.setOutputColumnHeaders(false); excelToHtmlConverter.setOutputRowNumbers(false); // 创建POI工作薄对象 HSSFWorkbook workbook = (HSSFWorkbook) getWorkbook(excelFile); excelToHtmlConverter.processWorkbook(workbook); Document htmlDocument = excelToHtmlConverter.getDocument(); ByteArrayOutputStream out = new ByteArrayOutputStream(); DOMSource domSource = new DOMSource(htmlDocument); StreamResult streamResult = new StreamResult(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); writePicures(workbook.getAllPictures(), outputPictureFolder.getAbsolutePath()+ File.separator ); writeFile(new String(out.toByteArray()), outputFolder.getAbsolutePath() + File.separator + excelFile.getName() + DEFAULT_HTML_TYPE); out.close(); } public static void writePicures(List<HSSFPictureData> pics,String picturesFolder) throws IOException { if (pics != null) { int count = 0; for (int i = 0; i < pics.size(); i++) { HSSFPictureData picData = pics.get(i); if (null == picData) { continue; } byte[] bytes = picData.getData(); FileOutputStream output = new FileOutputStream(picturesFolder + count + "." + picData.suggestFileExtension()); BufferedOutputStream writer = new BufferedOutputStream(output); writer.write(bytes); writer.flush(); writer.close(); output.close(); count++; } } } }
3.excel文件截图
4.HTML文件截图
5.唯一的遗憾是:转换后的HTML中目前没找到办法关联上图片
相关推荐
这款EXCEL转换HTML利用PIO万能转换,来源与CSDN网上资源,我只是吧所有JAR包和程序源码放在一起便于快速开发测试使用。本人测试整理好用。
java将excel转为html(03,07都可以),用于在线预览或手机端浏览excel
java实现 html转Excel
java实现excel向html转换 http://www.test-life.org/
java实现在线预览,将word,excel转换成html
java 实现wordpptexcel转换成html 都是经过测试的可放心使用
使用java将office word pdf excel ppt文件转换成html文件
该技术从国外某网站上整合而来,仅供参考,勉强可以,但仍需完善
使用java版excel操作api实现excel读取并转转为html,转换后的文件包含边框线、背景色、字体、字号、列宽等样式处理。
MS Office文档word,excel转换为html
完美的将word、excel转化为html,格式(图片、图标)一模一样
统计报表功能有excel转html的场景,读取指定位置的excel,将其转换成html形式的字符串。考虑到Apache成熟的Office文档处理工具POI的广受欢迎,POI提供了强大的excel表格处理的能力,不论是读还是写,都对开发人员...
把jacob.jar加载到工程里...C:\Program Files\Java\jdk1.5.0_04\bin;C:\Program Files\Java\jdk1.5.0_04\jre\bin;下添加jacob.dll文件。 OfficeToXML.java文件是实现代码。 我自己工程用到的代码,现共享出来给大家!
请测可用,将excel转换为html,JDK要求1.7,后台类包含着文件路径。
完美的将word、excel转化为html,格式和word格式一模一样。
poi提供了excel转html的代码,但是吧,有好多问题。当有合并单元格时边框获取不到,单元格内的字体样式也转换不了,现在对poi提供的Tohtml.java做了一些修改,修复了这些问题,记录下,以备之后用到
java poi使用实例,包含操作excel、word、pdf等-java poi use cases, including the operation of excel, word, pdf, etc.
兼容03、07版的,代码中有测试案例,把源码和jar导入和直接运行,能很好的转换
excel转化为pdf,html,jpg的方法。下载后用eclipse直接导入项目即可。
基于poi实现word/excel转换为HTML(且兼容.doc.docx.xls.xlsx) 对于简单的word Excel 转换 足够。excel转换时存在火狐浏览器不兼容乱码问题,希望多多交流。