得工作表里面可视的所有列总数
IDispatch col = (IDispatch) ((IDispatch)cursheet.get("UsedRange")).get("Columns");
int cols = Integer.parseInt(col.get("Count").toString());
(17)获得行列以后要获得里面的内容(这里用的rows 和 cols就是上面所得的)
String cellVal="";
String cellTxt="";
String hasFormula= "";
String cellFormula="";
for(int i=0;i<rows;i++){
for(int j=0;j<cols;j++){
IDispatch cells = (IDispatch) cursheet.get("Cells", new Object[] { new Integer(i+1),new Integer(j+1) });
cellVal = cells.get("value").toString();
cellTxt = cells.get("text").toString();
hasFormula = cells.get("HasFormula").toString();
cellFormula = cells.get("FormulaR1C1").toString();
}
}
注:这个遍历的时候也是从1开始;
cells.get("value")获得的是浮点数格式 如果你输入的是1,得到的会是1.0;
cells.get("text")获得的是本身,你输入什么获得的就是什么;
cells.get("HasFormula")判断是否是公式,如果单元格里是公式则返回真(true),如果不是公式则返回假(false);
cells.get("FormulaR1C1")获得公式,获得单元格里公式的内容;
Java中利用JCOM实现仿Excel编程(3)
时间:2011-03-06
(18)保护工作表
asheet.method("Protect", new Object[] {
password, new java.lang.Boolean(true), new java.lang.Boolean(true)
});
注:Protect后有N多参数 第1--3个分别是 password,DrawingObjects,Contects。
(19)解工作表保护
asheet.method("Unprotect", new Object[] { password });
(20)在finally里面写关闭
if (xlsApp != null) {
((IDispatch) xlsApp.get("ActiveWorkbook")).put("Saved", new java.lang.Boolean(true)); //保存工作薄
xlsApp.method("quit", null); //quit 是关闭的是整个EXCEL
xlsApp = null;
}
rm.release();
rm = null;
(21)关闭根据情况也写在finally 里面
workbook.method("close", null);
xlsApp.method("quit", null);
xlsApp=null;
rm.release();
rm = null;
注:workbook.method("close", null);关闭的是Workbook里的工作表;
xlsApp.method("quit", null);关闭的是整个工作薄
注意:
关闭的时候一定要加上
//rm 就是ReleaseManager的实例
rm.release();
rm = null;
如果你打开EXCEL不加上面两句的话在进程里面还运行着EXCEL.EXE
//----------------------------------------------------------------
如有不对请多多指教!!谢谢 |