您的位置:首页 > 其它

使用JACOB进行Excel读写控制

2010-03-04 09:05 344 查看
1、 下载JACOB包:http://danadler.com/jacob/
2、 安装配置
解压jacobBin_17.zip
(1)jacob.dll所在目录放到PATH中
(2)jacob.jar放到CLASSPATH中
3、使用jacob进行Excel控制,下面是我写的一个测试程序代码

import com.jacob.com.*;
import com.jacob.activeX.*;
class ExcelTest
{
private static ActiveXComponent xl;
private static Object workbooks = null;
private static Object workbook = null;
private static Object sheet = null;
private static String filename =null;
private static boolean readonly = false;

public static void main(String[] args)
{
String file = "f://java//test.xls";
OpenExcel(file,false);//false为不显示打开Excel
SetValue("A1","Value","2");
System.out.println(GetValue("A3"));
CloseExcel(false);
}

//打开Excel文档
private static void OpenExcel(String file,boolean f)
{
try
{
filename = file;
xl = new ActiveXComponent("Excel.Application");
xl.setProperty("Visible", new Variant(f));
workbooks = xl.getProperty("Workbooks").toDispatch();
workbook = Dispatch.invoke(workbooks,
"Open",
Dispatch.Method,
new Object[]{filename,
new Variant(false),
new Variant(readonly)},//是否以只读方式打开
new int[1] ).toDispatch();
}catch(Exception e)
{e.printStackTrace();}
}

//关闭Excel文档
private static void CloseExcel(boolean f)
{
try
{
Dispatch.call(workbook,"Save");
Dispatch.call(workbook, "Close", new Variant(f));
} catch (Exception e) {
e.printStackTrace();
} finally {
xl.invoke("Quit", new Variant[] {});
}
}

//写入值
private static void SetValue(String position,String type,String value)
{
sheet = Dispatch.get(workbook,"ActiveSheet").toDispatch();
Object cell = Dispatch.invoke(sheet, "Range",
Dispatch.Get,
new Object[] {position},
new int[1]).toDispatch();
Dispatch.put(cell, type, value);
}
//读取值
private static String GetValue(String position)
{
Object cell = Dispatch.invoke(sheet,"Range",Dispatch.Get,new Object[] {position},new int[1]).toDispatch();
String value = Dispatch.get(cell,"Value").toString();

return value;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: