`

java将excel转换为HTML

阅读更多

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中目前没找到办法关联上图片

 

 

  • 大小: 16.3 KB
  • 大小: 59 KB
  • 大小: 15.8 KB
分享到:
评论

相关推荐

    java将excel转html

    在“java将excel转html”的场景中,我们需要使用POI来读取Excel的内容,并将其转化为HTML代码。 1. **读取Excel文件**:使用POI的HSSFWorkbook(对于.xls)或XSSFWorkbook(对于.xlsx)类,我们可以打开Excel文件并...

    excel转换html类(Excel2HtmlUtil的JAVA类)

    【标题】"excel转换html类(Excel2HtmlUtil的JAVA类)"所涉及的知识点主要集中在Java编程语言上,特别是如何使用Java处理Excel文件并将其转换为HTML格式。这个标题表明存在一个名为`Excel2HtmlUtil`的Java类,该类实现...

    JAVA实现Excel转换Html进行预览

    JAVA实现Excel转换Html进行预览

    java实现excel转换成html

    标题"java实现excel转换成html"指出,我们将使用Java编程语言,通过Jacob库来实现Excel文件到HTML的转换。Jacob全称为JavaCOM Bridge,它是一个开源项目,提供了Java对COM组件的访问,使我们能够利用Microsoft ...

    java excel转html

    "Java Excel转HTML"就是这样一个需求,它涉及到使用Java编程语言将Microsoft Excel文件的内容转换成HTML格式,以便在Web环境中方便地展示和分享。Java提供了多种库来实现这样的功能,这些库通常能够处理不同版本的...

    java实现 html转Excel

    首先,我们需要理解HTML到Excel转换的基本步骤: 1. **HTML解析**:使用Java库如Jsoup来解析HTML文件,提取需要的数据。Jsoup能够解析HTML文档,并提供一套强大的API来查找、遍历和修改DOM树。例如,你可以根据CSS...

    java后台html 转excel

    在Java后台处理HTML数据并转换成Excel文件是一个常见的需求,特别是在数据分析、报表生成或导出功能中。这个技术涉及到HTML解析、数据提取以及Excel文件的生成。以下将详细讲解这个过程涉及的关键知识点。 1. HTML...

    在线预览-java实现word和excel转html

    3. **内容转换**:解析出的内容需要转化为HTML,这包括文本、样式、表格等元素。对于Word,可以利用OpenXML SDK的Java实现(如Apache POI)或者自定义解析XML并生成HTML代码;Excel的处理类似,需要将单元格、公式、...

    Excel2html-纯java实现excel转html

    总的来说,"Excel2html"项目展示了Java技术在处理数据格式转换上的灵活性和实用性,为开发者提供了方便的工具,使他们能够将Excel的丰富格式转化为易于在网络上传播的HTML格式。通过深入理解这个工具的工作原理和...

    java实现excel向html转换

    java实现excel向html转换 http://www.test-life.org/

    使用java将office word pdf excel ppt文件转换成html文件

    本篇文章将深入探讨如何使用Java将Office Word、PDF、Excel和PPT文件转换为HTML文件。 首先,我们需要了解的是,Java中的文件转换通常依赖于第三方库,因为Java标准库并不直接支持这些特定的转换功能。以下是一些...

    java使用jacob将word,excel,ppt转成html

    Java 使用 Jacob 库将 Office 文件转换为 HTML 是一个常见的需求,尤其在自动化处理文档或在线预览场景中。Jacob(Java and COM Bridge)是一个 Java 库,它允许 Java 应用程序通过 COM(Component Object Model)...

    Excel转换成html及jar

    标题中的“Excel转换成html及jar”意味着这是一个关于将Excel电子表格数据转换为HTML格式的程序,同时还提供了可执行的JAR文件。这个程序可能利用了Apache POI库,因为POI是Java开发者广泛使用的库,用于读写...

    java引用POI将Word、Excel转换为html

    此外,POI库本身并不支持直接将Word和Excel转换为HTML,所以需要自定义逻辑来处理格式和内容的转换。这可能涉及到对DOM操作的理解,以及对HTML和CSS的深入掌握。 总结起来,Java POI库提供了强大的接口,允许开发者...

    Java实现word、excel转pdf、html

    对于HTML转换,Java有许多库可以将Word和Excel文档转换为HTML,如Docx4j和Apache POI。这些库解析文档内容并生成HTML代码,可以保留大部分原始格式和样式。然而,由于HTML和Office文档的内在差异,完全保持一致的...

    java读取Excel导出Html对应的table代码

    在Java编程中,读取Excel文件并将其导出为HTML表格是一项常见的任务,尤其是在数据处理和Web应用开发中。这个任务通常涉及到使用第三方库来处理Excel文件,因为Java标准库并不直接支持Excel格式。本篇将详细介绍如何...

    java xlsx转html

    "java xlsx转html"这个主题涉及到的是使用Java编程语言将Microsoft Excel的.xlsx格式文件转换成HTML网页。这种转换在数据展示、网页报表或者在线数据查看场景中非常有用。接下来,我们将深入探讨如何实现这一转换,...

    JdbcExcel纯Java连接Excel

    在IT行业中,与Java编程相关的任务常常涉及到数据处理,而Excel作为常见的数据管理工具,其与Java的交互显得尤为重要。本篇文章将详细讲解如何使用纯Java连接Excel,并介绍压缩包内的相关资源。 纯Java连接Excel...

    excel文件转换为PDF,jpg,html的方法

    接下来,我们来看如何将Excel转换为JPG图像。这在需要将表格数据快速以图片形式分享时非常有用。一种常见的方法是使用屏幕截图工具,但如果你想获得更专业、可调整的输出,可以使用专门的文件转换软件,如Adobe ...

    MS Office文档word,excel转换为html

    MS Office文档word,excel转换为html

Global site tag (gtag.js) - Google Analytics