Java:Java的jar包之POI的简介、安装、使用方法(基于POI的转换—Word、Excel、Ppt等转html)之详细攻略
目录
POI的使用方法(基于POI的转换—Word、Excel、Ppt等转html)
1.1、创建Excel 文档—利用Jakarta POI API 创建Excel 文档
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。Poor Obfuscation Implementation即 简洁版的模糊实现。
下载地址:https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-4.0.0-20180907.tar.gz
- % gpg --import KEYS
- % gpg --verify downloaded_file.asc downloaded_file
- or
-
- % pgpk -a KEYS
- % pgpv downloaded_file.asc
- or
-
- % pgp -ka KEYS
- % pgp downloaded_file.asc
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFRow;
- import org.apache.poi.hssf.usermodel.HSSFCell;
- import java.io.FileOutputStream;
- public class CreateXL {
- /** Excel 文件要存放的位置,假定在D盘下*/
- public static String -variable">outputFile -operator">= "D:\\test.xls";
- public static void main(String argv[]) {
- try {
- // 创建新的Excel 工作簿
- HSSFWorkbook -variable">workbook -operator">= new HSSFWorkbook();
- // 在Excel工作簿中建一工作表,其名为缺省值
- // 如要新建一名为"效益指标"的工作表,其语句为:
- // HSSFSheet sheet = workbook.createSheet("效益指标");
- HSSFSheet -variable">sheet -operator">= workbook.createSheet();
- // 在索引0的位置创建行(最顶端的行)
- HSSFRow -variable">row -operator">= sheet.createRow((short)0);
- //在索引0的位置创建单元格(左上端)
- HSSFCell -variable">cell -operator">= row.createCell((short)0);
- // 定义单元格为字符串类型
- cell.setCellType(HSSFCell.CELL_TYPE_STRING);//已过时
- // 在单元格中输入一些内容
- cell.setCellValue("增加值");
- // 新建一输出文件流
- FileOutputStream -variable">fOut -operator">= new FileOutputStream(outputFile);
- // 把相应的Excel 工作簿存盘
- workbook.write(fOut);
- fOut.flush();
- // 操作结束,关闭文件
- fOut.close();
- System.out.println("文件生成...");
- } catch (Exception e) {
- System.out.println("已运行 xlCreate() : " + e);
- }
- }
- }
读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为test1.xls的Excel文件。
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFRow;
- import org.apache.poi.hssf.usermodel.HSSFCell;
- import java.io.FileInputStream;
- public class ReadXL {
- /** Excel文件的存放位置。注意是反斜线*/
- public static String -variable">fileToBeRead -operator">= "D:\\test1.xls";
- public static void main(String argv[]) {
- try {
- // 创建对Excel工作簿文件的引用
- HSSFWorkbook -variable">workbook -operator">= new HSSFWorkbook(new FileInputStream(fileToBeRead));
- // 创建对工作表的引用。
- // 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
- HSSFSheet -variable">sheet -operator">= workbook.getSheet("Sheet1");
- // 也可用getSheetAt(int index)按索引引用,
- // 在Excel文档中,第一张工作表的缺省索引是0,
- // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
- // 读取左上端单元
- HSSFRow -variable">row -operator">= sheet.getRow(0);
- HSSFCell -variable">cell -operator">= row.getCell((short)0);
- // 输出单元内容,cell.getStringCellValue()就是取所在单元的值
- System.out.println("左上端单元是: " + cell.getStringCellValue());
- } catch (Exception e) {
- System.out.println("已运行xlRead() : " + e);
- }
- }
- }
- import java.io. * ;
- import org.apache.poi.hwpf.extractor.WordExtractor;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFRow;
- import org.apache.poi.hssf.usermodel.HSSFCell;
- public class TestPoi {
- public TestPoi() {}
- public static void main(String args[])throws Exception{
- FileInputStream -variable">in -operator">= new FileInputStream("D:\\a.doc");
- WordExtractor -variable">extractor -operator">= new WordExtractor();
- String -variable">str -operator">= extractor.extractText(in);
- //System.out.println("the result length is"+str.length());
- System.out.println(str);
- }
- }
文章参考:
https://blog.csdn.net/yjclsx/article/details/51441632
http://blog.csdn.net/z69183787/article/details/17468039
在现在这个互联网在线时代,java实现在线预览的这个需求,或许是大家都想要的。当然,如果公司有钱,直接使用付费的第三方软件或者云在线预览服务就可以了,比如永中office、office web 365(http://www.officeweb365.com/)等公司,都有云端在线预览服务,可想而知,这些扩展功能,肯定是需要钱了。
但是,对于我们学生党,如果想要免费或者DIY,则可以用openoffice,还需要借助其他的工具(例如swfTools、FlexPaper等)才行。实现原理就是:
当然如果装了Adobe Reader XI,那把pdf直接拖到浏览器页面就可以直接打开预览,这样就不需要步骤2、3了,前提就是客户装了Adobe Reader XI这个pdf阅读器。
当然,本篇文章主要介绍的POI,所以,可以通过POI实现word、excel、ppt转html,这样就可以放在页面上了。
- package wordToHtml;
-
- 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.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 PoiWordToHtml {
- public static void main(String[] args) throws Throwable {
- final String -variable">path -operator">= "D:\\poi-test\\wordToHtml\\";
- final String -variable">file -operator">= "人员选择系分.doc";
- InputStream -variable">input -operator">= new FileInputStream(path + file);
- HWPFDocument -variable">wordDocument -operator">= new HWPFDocument(input);
- WordToHtmlConverter -variable">wordToHtmlConverter -operator">= 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 -variable">pics -operator">= wordDocument.getPicturesTable().getAllPictures();
- if (pics != null) {
- for (int -variable">i -operator">= 0; i < pics.size(); i++) {
- Picture -variable">pic -operator">= (Picture) pics.get(i);
- try {
- pic.writeImageContent(new FileOutputStream(path
- + pic.suggestFullFileName()));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- }
- }
- Document -variable">htmlDocument -operator">= wordToHtmlConverter.getDocument();
- ByteArrayOutputStream -variable">outStream -operator">= new ByteArrayOutputStream();
- DOMSource -variable">domSource -operator">= new DOMSource(htmlDocument);
- StreamResult -variable">streamResult -operator">= new StreamResult(outStream);
- TransformerFactory -variable">tf -operator">= TransformerFactory.newInstance();
- Transformer -variable">serializer -operator">= tf.newTransformer();
- serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
- serializer.setOutputProperty(OutputKeys.INDENT, "yes");
- serializer.setOutputProperty(OutputKeys.METHOD, "html");
- serializer.transform(domSource, streamResult);
- outStream.close();
- String -variable">content -operator">= new String(outStream.toByteArray());
- FileUtils.writeStringToFile(new File(path, "人员选择系分.html"), content, "utf-8");
- }
- }
- package excelToHtml;
-
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- 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.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 PoiExcelToHtml {
- final static String -variable">path -operator">= "D:\\poi-test\\excelToHtml\\";
- final static String -variable">file -operator">= "exportExcel.xls";
- public static void main(String args[]) throws Exception {
-
- InputStream input=new FileInputStream(path+file);
- HSSFWorkbook excelBook=new HSSFWorkbook(input);
- ExcelToHtmlConverter -variable">excelToHtmlConverter -operator">= new ExcelToHtmlConverter (DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument() );
- excelToHtmlConverter.processWorkbook(excelBook);
- List -variable">pics -operator">= excelBook.getAllPictures();
- if (pics != null) {
- for (int -variable">i -operator">= 0; i < pics.size(); i++) {
- Picture -variable">pic -operator">= (Picture) pics.get (i);
- try {
- pic.writeImageContent (new FileOutputStream (path + pic.suggestFullFileName() ) );
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- }
- }
- Document -variable">htmlDocument -operator">=excelToHtmlConverter.getDocument();
- ByteArrayOutputStream -variable">outStream -operator">= new<
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!