jacob操作word excel(来自http://sinye.iteye.com/blog/588050)

项目开发过程中,需求涉及到了各种文档转换为HTML或者网页易显示格式,现在将实现方式整理如下:
一、了解Jacob

先了解一下概念,JACOB 就是 JAVA-COM Bridge的缩写,提供自动化的访问com的功能,也是通过JNI功能访问windows平台下的com组件或者win32系统库的。这是一个开始于1999年的开源项目的成果,有很多使用者对该项目进行了修改,做出了自己的贡献。

下载地址:http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=118368
二、Jacob安装

1、我们解开下载的jacob_1.9.zip,在文件夹中找到jacob.dll和jacob.jar两个文件
2、将压缩包解压后,Jacob.jar添加到Libraries中;
3、将Jacob.dll放至“WINDOWS\SYSTEM32”下面。
需要注意的是:
【使用IDE启动Web服务器时,系统读取不到Jacob.dll,例如用MyEclipse启动Tomcat,就需要将dll文件copy到MyEclipse(经本人实践,发现此处应为JDK,不然会有问题哦)安装目录的“jre\bin”下面。最后需要关闭MyEclipse,再重启。
一般系统没有加载到Jacob.dll文件时,报错信息为:“java.lang.UnsatisfiedLinkError: no jacob in java.library.path”】

三、使用Jacob转换Word,Excel为HTML

JAVA代码:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;public class TransformFiletoHtml
{int WORD_HTML = 8;int WORD_TXT = 7;int EXCEL_HTML = 44;/*** WORD转HTML* @param docfile WORD文件全路径* @param htmlfile 转换后HTML存放路径*/public void wordToHtml(String docfile, String htmlfile){ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动wordtry{app.setProperty("Visible", new Variant(false));Dispatch docs = app.getProperty("Documents").toDispatch();Dispatch doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] { docfile, new Variant(false),new Variant(true) }, new int[1]).toDispatch();Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {htmlfile, new Variant(WORD_HTML) }, new int[1]);Variant f = new Variant(false);Dispatch.call(doc, "Close", f);}catch (Exception e){e.printStackTrace();}finally{app.invoke("Quit", new Variant[] {});}}/*** EXCEL转HTML* @param xlsfile EXCEL文件全路径* @param htmlfile 转换后HTML存放路径*/public void excelToHtml(String xlsfile, String htmlfile){ActiveXComponent app = new ActiveXComponent("Excel.Application"); // 启动exceltry{app.setProperty("Visible", new Variant(false));Dispatch excels = app.getProperty("Workbooks").toDispatch();Dispatch excel = Dispatch.invoke(excels,"Open",Dispatch.Method,new Object[] { xlsfile, new Variant(false),new Variant(true) }, new int[1]).toDispatch();Dispatch.invoke(excel, "SaveAs", Dispatch.Method, new Object[] {htmlfile, new Variant(EXCEL_HTML) }, new int[1]);Variant f = new Variant(false);Dispatch.call(excel, "Close", f);}catch (Exception e){e.printStackTrace();}finally{app.invoke("Quit", new Variant[] {});}}/*** /删除指定文件夹* @param folderPath 文件夹全路径* @param htmlfile 转换后HTML存放路径*/public void delFolder(String folderPath) {try {delAllFile(folderPath); //删除完里面所有内容String filePath = folderPath;filePath = filePath.toString();java.io.File myFilePath = new java.io.File(filePath);myFilePath.delete(); //删除空文件夹} catch (Exception e) {e.printStackTrace();}}/*** /删除指定文件夹下所有文件* @param path 文件全路径*/public boolean delAllFile(String path) {boolean flag = false;File file = new File(path);if (!file.exists()) {return flag;}if (!file.isDirectory()) {return flag;}String[] tempList = file.list();File temp = null;for (int i = 0; i < tempList.length; i++) {if (path.endsWith(File.separator)) {temp = new File(path + tempList[i]);} else {temp = new File(path + File.separator + tempList[i]);}if (temp.isFile()) {temp.delete();}if (temp.isDirectory()) {delAllFile(path + "/" + tempList[i]);//先删除文件夹里面的文件delFolder(path + "/" + tempList[i]);//再删除空文件夹flag = true;}}return flag;}
}

调用JAVA代码:

public class Test1 {public static void main(String[] args) {// TODO Auto-generated method stubTransformFiletoHtml trans = new TransformFiletoHtml();trans.wordToHtml("D:\\sinye.doc", "D:\\sinye.html");}}
只写了一个测试word转html的,excel转html的同理,在TransformFiletoHtml类中,写了两个方法,一个是删除文件夹的方法(delFolder()),一个是删除文件夹下所有文件的方法(delAllFile())。写这个的目的是出于:在word或者excel转html的过程中,除了生成制定的html页面外,jacob组件会生成一些转换html页面时相关的其它页面,但是这些相关的其它页面不是我们所需要的,因此想把它删除,其实不删除也可以,只是看着不爽,在测试中,发现,word有时不会生成这样的文件,而且即使生成了,也能删除掉,但是excel生成的文件却不能删除,还望高手们给予解答。

另外,在你将excel转换html时,如果你的代码没问题,转换时,老提示什么存在用户区域的安全设置这什么的,会让你选择继续转换,还是取消。这是因为你转换的那个excel中写了保护,解决办法是在excel的工具->保护->允许用户编辑区域,删除里面的所有保护。

jacob操作word excel 将word excel转换成网页形式相关推荐

  1. Word中数值小写转大写,金额小写批量转换成大写形式,也支持WPS

    Word中的小写金额转换成大写形式,或者将大写形式转换成小写形式,使用<Word精灵4.4>都可以完成,一键实现需求. 插件下载地址 1.https://wws.lanzous.com/i ...

  2. 如何更改计算机上面的图表形式,excel表格数据转换图形-怎么把EXCEL中的一组数字转换成图表形式...

    谁会计算机啊,怎么把word里的表格数据转换成簇状... Excel表格转化成的方式如下: 1.打开EXCEL表格,数据,图表右侧下拉按钮,如图 2.出窗口中选择自己需要的图表,这里以曲面图为例,如图 ...

  3. win7计算机名改成大写,图文解读win7系统excel数字小写金额转换成汉字大写金额的措施...

    有很多网友在使用电脑的过程总难免会遇到win7系统excel数字小写金额转换成汉字大写金额的情况.针对win7系统excel数字小写金额转换成汉字大写金额的问题,我给大家整理总结了详细的解决步骤.近日 ...

  4. Excel格式转换:Excel工资表如何转换成PDF格式

    现如今每家企业单位都会保证员工工资的透明化.公开化,所以在发放工资前,都会给员工分发工资条.将工资当中每一笔钱都标记着清清楚楚,包括因为什么原因扣得工资也会很清楚地告知大家.工资表地制作通常都是使用E ...

  5. wps的ppt怎么存html,如何将网页快速转换为WPS与WORD文档 ppt怎么转换成word文档

    导读:小编根据大家的需要整理了一份关于<如何将网页快速转换为WPS与WORD文档 ppt怎么转换成word文档>的内容,具体内容: 看到图文并茂的网页,想把它全部或部分转换为WPS或者WO ...

  6. excel中的文本转换成数值

    excel中的文本转换成数值 B1 = A1*1 都乘上一个1就好了

  7. SQL 把表中字段存储的逗号隔开内容转换成列表形式

    原文:[原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式 我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ...

  8. JS 使用正则匹配字符串中所有大括号包含的数据,转换成数组形式

    JS 使用正则匹配字符串中所有大括号包含的数据,转换成数组形式 .match(/{[^}{]*?}/g)

  9. 【PDF制作电子杂志】云展网教程 | Word/Excel文档如何转换成PDF

    WORD转PDF教程请打开链接查看:点击<如何将word文件转换成pdf文件> EXCEL转PDF教程请打开链接查看:点击<怎样将Excel转化为PDF>

最新文章

  1. 计算机行业2019年度投资研究手册
  2. 微服务架构面试送送送命题!
  3. php 启动管理工具下载,phpPgAdmin|PostgreSQL管理工具(phpPgAdmin)下载v5.0.4 开源版 - 欧普软件下载...
  4. 算法提高 合并石子【动态规划】
  5. c# dynamic 类型调用静态方法实例
  6. Encoding非常用编码转换
  7. 【C语言工具】AddressSanitizer - 内存检测工具
  8. 5G时代下的移动边缘计算(MEC)探索系列之四
  9. http的rest服务简介_REST概念简介
  10. 重磅发布:《AI产品经理的实操手册(2021版)——AI产品经理大本营的4年1000篇干货合辑》(PDF)...
  11. 分库分表中间件的高可用实践
  12. Python Turtle绘图[难度2星]:横切的橙子(配色优化——邻近色/反差色)
  13. 公司监事会的职责具体是什么
  14. 类似婚礼纪的Java项目_「婚礼纪」婚礼纪 java面试 - seo实验室
  15. python学习笔记(字符串操作、字典操作、三级菜单实例)
  16. Linux系统下的文件传输
  17. MLOps介绍:机器学习技术债
  18. extrinsic parameters外部参数radial distortion畸变参
  19. 第五项修炼--学习型组织的艺术与实践
  20. Win11应用商店下载的软件怎么移到桌面

热门文章

  1. Mysql全套看这一篇就够了特别详细
  2. PDU(Protocol Data Unit)协议数据单元
  3. windows 10关闭IIS服务器
  4. CRM解决方案如何选择?!
  5. 明远智睿A40i嵌入式核心板助力智能公交系统构建
  6. hb100 微波雷达arduino_【Arduino】108种传感器系列实验(119)---HB100多普勒雷达模块...
  7. 【WebLogic】Windows系统下WebLogic 12.1.3.0的安装和补丁
  8. 【POJ3208】 (DP)
  9. android+3g移植,惊呆!普耐尔MOMO迷你3G移植MIUI系统
  10. 解决cocos2d-x pvr.ccz格式的图片有时无法读取的一个bug