快速业务通道

Java中使用JCOM操作Office对象 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25

Java中使用JCOM操作Office对象

时间:2009-11-02 天极

通过使用COM技术,我们用微软Office应用程序能够建立很多应用程序扩展,但是Java开发人员却无法享受它带来的便利--除非他们拥有方便的Java访问COM的途径(Java-to-COM桥)。使用JCom的时候,你可以在Java中控制几乎所有的COM对象,而且它还带有一些用于Excel的强大的辅助类。

在你每次编写用HTML表格样式或Java表格对象显示数据的应用程序的时候,通常都需要带有"导出到Excel"功能。那么头疼的问题就出现了。怎么样实现这种功能呢?在HTML中显示的可以在Office 2003中处理吗?没有这么好!你还必须支持Office 97!

你只能去找一个符合当前需求的工具了,但是接着收到更多的要求了。"这能在Word中做到吗?Powerpoint能做到吗?能不能用调制解调器拨号到远程服务器上并发布数据?Java无法实现这些功能是什么意思啊?Java可以实现任何功能。"

感谢作为Java和COM桥梁的框架组件,它使你在遇到这些情况的时候都可以回答"Yes"。Java-COM桥梁使你能够根据自己的需要操作Windows组件--以前这是VB、C++和.NET开发人员的领地。你通过实现一个与DCOM后端(back end)对话的Java前端(front end),可以远离端对端(end-to-end)的COM系统。在本文的末尾,你可以使用其中一个Java-to-COM桥:它可以被命名为JCom。

Excel基础知识

开始之前,你需要首先从Sourceforge网站下载API。它包含了JCom所使用的Java类的所有源代码、C++代码和JCom用于配置Java和COM的编译好的DLL。把这个DLL放到你的Java主目录的/bin/目录下面,否则会出现问题。同时,为了不出现问题,还要正确地设置JAVA_HOME环境变量。JCom的大多数文档目前都是用日语写的,但是翻译工作正在进行中,因此以后会有些改进的。

下载和安装过程完成以后,用列表1中的代码试一试。这段代码会建立到Excel的JCom接口,并把"Hello World"写入第一个单元格中。你可以看到如图1所示的结果。尽管JCom是一个通用的COM类库,但是还是带有很多用于Excel的辅助类,这是因为Excel可能是最常用的自动化COM应用程序。这些辅助类可以为我们节省很多时间,它们使JCOM成为一个更好的类库了。

列表1:开始使用JCOM和Excel

import jp.ne.so_net.ga2.no_ji.jcom.excel8.*; import jp.ne.so_net.ga2.no_ji.jcom.*; public class testSimple { public static void main(String[] args) throws Exception { ReleaseManager rm = new ReleaseManager(); try { System.out.println("EXCEL is Starting..."); ExcelApplication excel = new ExcelApplication(rm); excel.Visible(true); ExcelWorkbooks xlBooks = excel.Workbooks(); ExcelWorkbook xlBook = xlBooks.Add(); ExcelWorksheets xlSheets = xlBook.Worksheets(); ExcelWorksheet xlSheet = xlSheets.Item(1); ExcelRange xlRange = xlSheet.Cells(); xlRange.Item(1,1).Value("Hello, World!" ); } catch(Exception e) { e.printStackTrace(); } finally { rm.release(); } } }

图1:Java中使用Excel的第一个COM自动化

如果曾经使用VB或VBA来自动化Excel,那么你应该很熟悉列表1中的代码了。ExcelApplication类暴露了Workbooks()属性,它列举出Excel中当前打开的工作薄(workbook),并允许你向运行的Excel副本增加或删除工作薄。使用.Add()方法增加工作薄,这个方法会返回一个工作薄的引用。

在Excel中工作薄用于保存输入的数据。工作薄是XLS文件的基础。一个工作薄由多个工作表(worksheet,在图1中有三个工作表,分别叫做Sheet1、Sheet2和Sheet3)。工作表通过Item属性来枚举。你可以使用这个属性访问特定的工作表

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号