在Java中利用JCOM实现仿Excel编程详解
在JAVA中使用JCOM和JXL的要点:
1.在你的库下,你应该有jdom-1.0.jar,jxl-2.5.5.jar,jcom-2.2.4.jar,jcom.dll。
2.把jcom.dll放在你JDK的bin目录下或者windows系统盘里(建议放在JDK的BIN目录下)。
将上面所有的JAR包放在适当的位置,并开始在应用程序中编写工具类(为了记录,所有在JCOM中获得的IDispatch对象,下面将抛出一个JComException异常)
(1)首先你要判断一个传入路径是Word还是Excel还是别的。
if(path.endsWith("。doc "){
......
}
注意:如果是excel,后缀是“.xls ";
(2)然后你得有两个对象:
release manager RM = new release manager();
IDispatch xls app = null;
注意:ReleaseManager相当于一个容器,它与您机器上的所有JCOM构建进行交互。根据你传递的参数,他会寻找所有可以在你机器上操作的JCOM构建;
IDispatch可以理解为对象,一切都是对象;
(3)你得让他知道你想和EXCEL互动。
xlsApp = new IDispatch(rm," Excel。应用”);
(4)然后得到一个工作簿(Workbooks)
IDispatch excel =(IDispatch)xls app . get(" Workbooks ");
(5)设置当前对象是否可见。
xlsApp.put("Visible ",new Java . lang . boolean(false));
(6)拿到后打开练习册。
idispatch workbook =(idispatch)excel . method(" open ",new object[]{文件路径(存储Excel的路径)});
(7)判断文件是否存在,如果存在,删除
File f = new File(out path);
if(f . exists())
f . delete();
(8)将工作簿另存为
workbook.method ("saveas ",newobject [] {outpath,new integer(9)});
(9)获取工作簿下的所有工作表。
IDispatch Sheets =(IDispatch)workbook . get(" Sheets ");
注意:你得到的是一个数组;
(10)获取总张数。
int sheets Count = integer . parse int(sheets . get(" Count ")。toString());
(11)获取每张表的名称。
for(int sheet inx = 1;sheet inx IDispatch sheet =(IDispatch)sheets . get(" item ",new Object[]{ new Integer(sheet inx)});
String sheet name = sheet . get(" name ")。toString();
}
注意:excel总是从1开始,而不是从0开始;
遍历工作表时,除了索引之外,还可以传输工作表名称:
IDispatch sheet =((IDispatch)sheets . get(" item ",new Object[]{ sheet name }));
(12)获取活动表。
IDispatch asheet =(IDispatch)xls app . get(" active sheet ");
注意:xlsApp是一个从ReleaseManager获取EXCEL对象的IDispatch对象。
如果你想得到工作表,你应该先得到一个工作簿,然后用工作簿得到他下面的所有工作表。
位律师回复
0条评论