通过使用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(); }
}
}