Jacob 简介
通过调用COM组件实现对office软件的自动化操作。 jacob实现原理图:
Jacob常用方法
ComThread. InitSTA ( ) ;
ActiveXComponent app = new ActiveXComponent ( "Excel.Application" ) ;
ActiveXComponent app = new ActiveXComponent ( "ket.Application" ) ;
app. setProperty ( "Visible" , new Variant ( true ) ) ;
Dispatch workbooks = mApplication. getProperty ( "Workbooks" ) . toDispatch ( ) ;
Dispatch workbook = Dispatch. invoke ( workbooks, "Open" , Dispatch. Method,
new Object [ ] { filePath, new Variant ( false ) , new Variant ( false ) } ,
new int [ 1 ] ) . toDispatch ( ) ;
关闭Excel
Dispatch. call ( workbook, "Close" , new Variant ( false ) ) ;
ComThread. Release ( ) ;
表格操作
目标对象 方法 属性参数 返回 功能 目标对象 方法 属性参数 返回 功能
单元格操作
Dispatch Cell= Dispatch. invoke ( workSheet, "Range" ,
Dispatch. Get, new Object [ ] { position } , new int [ 1 ] )
. toDispatch ( ) ;
目标对象 方法 参数 返回 功能 Cell call “MergeCells” boolean 判断是否合并单元格 Cell call “UnMerge” - 拆分合并单元格 Cell put “Value” null 设置单元格值为value Cell get “Value” 单元格值 获取单元格值 Cell get “row” 行 获取单元格值 Cell get “column” 列 获取单元格值 Cell get “Font” Dispatch 获取单元字体对象 Font put “宋体” null 设置单元格字体为“宋体” Font put “color”, color null 设置字体颜色 Cell put “NumberFormatLocal” , “@” null 设置格式为文本格式 Cell put “NumberFormatLocal”,“0.0000” null 设置格式保留小数点后4位 Cell put “format”,“Text” null 设置格式为"Text"格式
合并单元格操作
Dispatch MergeCell= Dispatch. invoke ( worksheet, "Range" , Dispatch. Get, new Object [ ] { "A1:B2" } , new int [ 1 ] ) . toDispatch ( ) ;
Dispatch. call ( MergeCell, "Merge" ) ;
目标对象 方法 属性参数 返回 功能 MergeArea get “MergeArea” Dispatch 获取合并区域对象 MergeArea get “Columns” Dispatch 获取合并列对象 MergeArea get “Rows” Dispatch 获取合并行对象 Columns get “Count” Dispatch 获取合并列数 MergeArea get “Count” Dispatch 获取合并行数 MergeArea get “Address” 左上角单元格:右下角单元格 获取合并区域($ A$ 1:$ B$2)
参考资料
java操纵office