搜档网
当前位置:搜档网 › POI读取word转换html

POI读取word转换html

POI读取word转换html
POI读取word转换html

POI读取word转换html

文章分类:Java编程

apache POI读取word文档的文档比较少,所以只有自己慢慢的摸索,这篇文章也属于比较基础入门的,主要是针对读取word中的图片,以及文字的各种样式,如有不好的地方,请各位多多指教!

Java代码

1./**

2. *

3. */

4.package com.util;

5.

6.import java.io.BufferedWriter;

7.import java.io.File;

8.import java.io.FileInputStream;

9.import java.io.FileNotFoundException;

10.import java.io.FileOutputStream;

11.import java.io.IOException;

12.import java.io.OutputStream;

13.import java.io.OutputStreamWriter;

14.

15.import org.apache.poi.hwpf.HWPFDocument;

16.import org.apache.poi.hwpf.model.PicturesTable;

17.import https://www.sodocs.net/doc/385390536.html,ermodel.CharacterRun;

18.import https://www.sodocs.net/doc/385390536.html,ermodel.Picture;

19.import https://www.sodocs.net/doc/385390536.html,ermodel.Range;

20.

21./**

22. *

23. * @author 张廷下午10:36:40

24. *

25. */

26.public class WordToHtml {

27.

28./**

29. * 回车符ASCII码

30. */

31.private static final short ENTER_ASCII = 13;

32.

33./**

34. * 空格符ASCII码

35. */

36.private static final short SPACE_ASCII = 32;

37.

38./**

学习Java to Html

JavaToHtml 为了方便在blog中粘贴源代码,特意找了这方面的工具(本来琢磨自己写,可惜能力有限,再次受打击了~~~) JavaToHtml开源,Eclipse Plugin 大家都知道读源代码很累,读乱七八糟的源代码那就想吐了,所以格式化源代码还是很有必要的,不信看看下面的例子。 格式化后的漂亮效果: import java.util.Vector; public class Stack { private Vector content; public Stack() { content = new Vector(); } public void push(T t) { content.add(t); } public T peek() { if (content.size() == 0) { return null; } return content.get(content.size() - 1); } public T pop() { if (content.size() == 0) { return null; } return content.remove(content.size() - 1); } public int size() { return content.size(); } public String toString() { return content.toString();

} } 下面是原版的: import java.util.Vector; public class Stack { private Vector content; public Stack() { content = new Vector(); } public void push(T t) { content.add(t); } public T peek() { if (content.size() == 0) { return null; } return content.get(content.size() - 1); } public T pop() { if (content.size() == 0) { return null; } return content.remove(content.size() - 1); } public int size() { return content.size(); } public String toString() { return content.toString(); } } 更有甚者: package com.calculator.base;import java.util.Vector;public class Stack{ private Vectorcontent;public Stack(){content=new Vector();}public void push(T t){content.add(t);}public T peek(){if(content.size()==0){return null;} return content.get(content.size()-1);}public T pop(){if(content.size()==0){

使用POI来处理Excel和Word文件格式

// 文件二进制输入流 private InputStream is = null; // 当前的Sheet private int currSheet; // 当前位置 private int currPosition; // Sheet数量 private int numOfSheets; // HSSFWorkbook HSSFWorkbook workbook = null; // 设置Cell之间以空格分割 private static String EXCEL_LINE_DELIMITER = " "; // 设置最大列数 private static int MAX_EXCEL_COLUMNS = 64; // 构造函数创建一个ExcelReader public ExcelReader(String inputfile) throws IOException, Exception { // 判断参数是否为空或没有意义 if (inputfile == null || inputfile.trim().equals("")) { throw new IOException("no input file specified"); } // 取得文件名的后缀名赋值给filetype this.filetype = inputfile.substring(https://www.sodocs.net/doc/385390536.html,stIndexOf(".") + 1); // 设置开始行为0 currPosition = 0; // 设置当前位置为0 currSheet = 0; // 创建文件输入流 is = new FileInputStream(inputfile);

将图片转成base64字符串并在JSP页面显示的Java代码

*本事例主要讲了如下几点: * 1:将图片转换为BASE64加密字符串. * 2:将图片流转换为BASE64加密字符串. * 3:将BASE64加密字符串转换为图片. * 4:在jsp文件中以引用的方式和BASE64加密字符串方式展示图片. 首先看工具类: import ; import ; import ; import ; import ; import ; import ; import ; import ; /** * @author IluckySi 1

* @since */ public class ImageUtil { private static BASE64Encoder encoder = new ; private static BASE64Decoder decoder = new ; /** * 将图片转换为BASE64加密字符串. * @param imagePath 图片路径. * @param format 图片格式. * @return */ public String convertImageToByte(String imagePath, String format) { File file = new File(imagePath); BufferedImage bi = null; ByteArrayOutputStream baos = null; String result = null;

try { bi = ImageIO.read(file); baos = new ByteArrayOutputStream(); ImageIO.write(bi, format == null ? "jpg" : format, baos); byte[] bytes = baos.toByteArray(); result = encoder.encodeBuffer(bytes).trim(); "将图片转换为BASE64加密字符串成功!"); } catch (IOException e) { "将图片转换为BASE64加密字符串失败: " + e); } finally { try { if(baos != null) { baos.close(); baos = null; } } catch (Exception e) { "关闭文件流发生异常: " + e); } 3

poi读写Excel文件

一、Excel基础 二、HSSF概况 三、通过usermodel读取文件 四、通过usermodel写入文件 五、通过eventusermodel读取文件 六、HSSF电子表格结构 七、通过HPSF读取文档属性 八、文档摘要信息 九、附录 ━━━━━━ 正文: ━━━━━━ 在上一篇文章中,我们介绍了POI项目的基本概念,了解了如何用POI来读写OLE 2复合文档结构,并给出了两个简单的例子:用POI来读写Excel文件的Workbook流。本文继续前文的话题,阐述如何用POI来读取/写入完整的Excel文件。 约定:POI项目2.0版现在已经接近正式发行阶段,开发进度迅速,不断有新的功能集成到原有的系统,同时也有对原有系统的修改。为了保证本文的及时性,本文将按照最近的1.9开发版说明。虽然编译最近的发行版源代码也能正常运行,但现在的代码和2.0的发行版会有一些出入。 一、Excel基础 Microsoft Excel 97文件格式也被称为BIFF8,最近版本的Excel只对该格式作了少量的改动。增加对新格式的支持除了增加项目的复杂性之外,唯一的效果也许只是不得不使每个用户升级代码,没有什么实际的好处。因此,在下文说明中,凡是提到Excel 97格式的地方其实都是指Excel从97到XP的格式。 二、HSSF概况 POI项目实现的Excel 97文件格式称为HSSF——也许你已经猜到,HSSF是Horrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”(微软使某些原本简单的事情过分复杂,同时又过分简单地处理了某些原本需要灵活性的事情,让人不胜佩服!)也

word域代码转换html丢失解决办法

. Word转html存在域代码丢失。 Aspose ,jacob,poi都无法解决 在使用jocob转换成html时域代码会被包裹 可以统一提取出来转换成latex ,latex转换成图片,解决word域代码丢失问题 private void processFormula(List nodes) throws UnsupportedEncodingException{ for(int i = nodes.size()-1;i>=0;i--){ Node node =nodes.get(i); if(node instanceof Element){ Element e = (Element)node; processFormula(e.childNodes()); }else if(node instanceof Comment){ String commentText = node.toString(); if(commentText.contains(" & 空格 --->   < ---> < > ---> > " ---> " 此外,根据源码的特点,可以把 TAB 转为4个空格来显示。 TAB --->      为了显示为换行,需要在行尾加
标签。 为了显示美观,对关键字加粗显示,即在关键字左右加标签。比如: public 对单行注释文本用绿色显示,可以使用标签,形如: //这是我的单行注释! 注意:如果“//”出现在字符串中,则注意区分,不要错误地变为绿色。 不考虑多行注释的问题(/* .... */ 或 /** .... */) 你的任务是:编写程序,把给定的源文件转化为相应的html表达。 【输入、输出格式要求】 与你的程序同一目录下,存有源文件 a.txt,其中存有标准的java源文件。

要求编写程序把它转化为b.html。 例如:目前的 a.txt 文件与 b.html 文件就是对应的。可以用记事本打开b.html查看转换后的内容。用浏览器打开b.html则可以看到显示的效果。 注意:实际评测的时候使用的a.txt与示例是不同的。 【注意】 请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分! 请把所有类写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。 相关的工程文件不要拷入。 请不要使用package语句。 源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更高版本。 a.txt // 我的工具类 public class MyTool { public static void main(String[] args) { int a = 100; int b = 20; if(a>b && true) System.out.println(a); else System.out.println("this! //aaa//kkk"); // 测试注释显示是否正确 } } 代码 package com; import java.io.BufferedReader; import java.io.BufferedWriter;

Java读写Excel之POI入门

Java读写Excel之POI入门 Apache POI 是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。 Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。 如果处理.xlsx、docx、pptx的话可以试试Docx4j 。 ?HSSF -提供读写Microsoft Excel XLS格式档案的功能。 ?XSSF -提供读写Microsoft Excel OOXML XLSX格式档案的功能。 ?HWPF -提供读写Microsoft Word DOC格式档案的功能。 ?HSLF -提供读写Microsoft PowerPoint格式档案的功能。 ?HDGF -提供读Microsoft Visio格式档案的功能。 ?HPBF -提供读Microsoft Publisher格式档案的功能。 ?HSMF -提供读Microsoft Outlook格式档案的功能。 版本:poi-3.8-20120326.jar 1、生成Workbook Java代码

2、生成Workbook OOXML形式(.xlsx) Java代码 3、打开Workbook Java代码

java表达式转换代码

https://www.sodocs.net/doc/385390536.html,/itedu/200707/126842_3.html 一、表达式的组成 1、数字 2、运算符:+ - / * ^ % = 3、圆括号 4、变量 二、运算符优先级 由高到低分别为:+-(正负号)、^、*/%、+-、= 优先级相等的运算符按照从左到右的顺序计算 三、关键技术点 1、确定运算的优先级,从高到低分别为:原子元素表达式,包括数字和变量;括号表达式;一元表达式,取数的负数;指数表达式;乘、除、取模表达式;加、减表达式;赋值表达式。 2、对于每一级别的运算,都由一个方法实现,在方法中先完成比自己高一级别的运算,再处理本级别的运算。因此,在计算整个表达式的主方法中,只需要调用最低级别的运算的实现方法即可。 3、确定表达式中的分隔符,(+、-、*、/、%、^、=、(、)、)。利用这些分隔符将表达式分成多段,每一段叫做一个token,分隔符也算token。 4、用长度为26的int数组vars存储变量的值。 5、Character的isWhitespace方法判断字符是否为空白符,用于去掉表达式中的空白符。 6、Character的isLetter方法判断字符是否为字母,用于提取表达式中的变量 7、Character的isDigit方法判断字符是否为数字,用于获取表达式中的数字 四、演示实例 /** *//** * 文件名ExpressionParser.java */ package book.oo.String; /** *//** * 表达式解析器 * @author joe * */

public class ExpressionParser ...{ //4种标记类型 public static final int NONE_TOKEN = 0; //标记为空或者结束符 public static final int DELIMITER_TOKEN = 1; //标记为分隔符 public static final int VARIABLE_TOKEN = 2; //标记为变量 public static final int NUMBER_TOKEN = 3; //标记为数字 //4种错误类型 public static final int SYNTAX_ERROR = 0; //语法错误   public static final int UNBALPARENS_ERROR = 1; //括号没有结束错误 public static final int NOEXP_ERROR = 2; //表达式为空错误 public static final int DIVBYZERO_ERROR = 3; //被0除错误 //针对4种错误类型定义的4个错误提示 public static final String[] ERROR_MESSAGES = ...{"Syntax Error", "Unbalanced " + "Parentheses", "No Expression Present", "Division by Zero"}; //表达式的结束标记 public static final String EOE = ""\0"; private String exp; //表达式字符串 private int expIndex; //解析器当前指针在表达式中的位置 private String token; //解析器当前处理的标记 private int tokenType; //解析器当前处理的标记类型 private double[] vars = new double[26]; //变量数组 /** * */ public ExpressionParser() { } /** * 解析一个表达式,返回表达式的值 */ public double evaluate(String expStr) throws Exception { double result; this.exp = expStr; this.expIndex = 0; //获取第一个标记 this.getToken(); if (this.token.equals(EOE)) { //没有表达式异常

使用POI读取excel文件内容

使用POI读取excel文件内容 package edu.sjtu.erplab.poi;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map;import https://www.sodocs.net/doc/385390536.html,ermodel.HSSFCell;import https://www.sodocs.net/doc/385390536.html,ermodel.HSSFDateUtil;import https://www.sodocs.net/doc/385390536.html,ermodel.HSSFRow;import https://www.sodocs.net/doc/385390536.html,ermodel.HSSFSheet;import https://www.sodocs.net/doc/385390536.html,ermodel.HSSFWorkbook;import org.apache.poi.poifs.filesystem.POIFSFileSystem;/** * 操作Excel表格的功能类*/public class ExcelReader { private POIFSFileSystem fs; private HSSFWorkbook wb; private HSSFSheet sheet; private HSSFRow row; /** * 读取Excel表格表头的内容* @param InputStream * @return String 表头内容的数组*/ public String[] readExcelTitle(InputStream is) { try { fs = new POIFSFileSystem(is); wb = new HSSFWorkbook(fs); } catch (IOException e)