配置环境:
1,将jcom.jar导入到工程classpath下 2,将jcom.dll文件拷贝到jdk/bin目录下
package sample1;
import java.io.File;
import java.util.Date;
import jp.ne.so_net.ga2.no_ji.jcom.IDispatch;
import jp.ne.so_net.ga2.no_ji.jcom.ReleaseManager;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelApplication;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelRange;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelWorkbook;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelWorkbooks;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelWorksheet;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelWorksheets;
public class JcomExcelSample1 {
private static ReleaseManager rm = null; // ReleaseManager相当于一个容器,与你机器上的所有JCOM组建交互,根据你传的参数他会去寻找你机器上的所有JCOM能操作的组建;
public static void main(String[] args) throws Exception {
rm = new ReleaseManager();//查找JCOM能够操作的组件
IDispatch appl = null;
try {
System.out.println("EXCEL loading...");
ExcelApplication excel = new ExcelApplication(rm);//创建可加载excel组件
excel.Visible(true);//表示显示操作的excel文件
System.out.println("Version=" + excel.Version());
System.out.println("UserName=" + excel.UserName());
System.out.println("Caption=" + excel.Caption());
System.out.println("Value=" + excel.Value());
ExcelWorkbooks xlBooks = excel.Workbooks();//创建工作薄对象
ExcelWorkbook xlBook = xlBooks.Add();//添加工作薄
ExcelWorksheets xlSheets = xlBook.Worksheets();//获得工作薄中的工作表,返回的是以数组形式存放
ExcelWorksheet xlSheet = xlSheets.Item(2);//选中第2个工作表
xlSheet.Name("new sheet name");//修改当前sheet的名字
ExcelRange xlRange = xlSheet.Cells();//得到工作表的单元格
//向指定的单元格中添加值
xlRange.Item(1, 1).Value("第1行,第1列");
xlRange.Item(1, 2).Value("第1行,第2列");
xlRange.Item(1, 3).Value("第1行,第3列");
xlRange.Item(1, 4).Value("第1行,第4列");
xlRange.Item(1, 5).Value("第1行,第5列");
xlRange.Item(1, 6).Value("第1行,第6列");
xlRange.Item(1, 7).Value("第1行,第7列");
File path = new File("./");//创建一个文件对象(.表示当前路径下或者使用(./))
String[] filenames = path.list();//列出该文件加下的所有文件
for (int i = 0; i < filenames.length; i++) {
File file = new File(filenames[i]);//得到目录下当前文件对象
System.out.println("file:"+file);//
xlRange.Item(i + 2, 1).Value(file.getName());//文件的名字
xlRange.Item(i + 2, 2).Value((int) file.length());//**返回文件大小**
xlRange.Item(i + 2, 3).Value(new Date(file.lastModified()));//文件最后更新时间
xlRange.Item(i + 2, 4).Value(file.isDirectory() ? "Yes" : "No");//判断是否是目录
xlRange.Item(i + 2, 5).Value(file.isFile() ? "Yes" : "No");//判断是否是文件
xlRange.Item(i + 2, 6).Value(file.canRead() ? "Yes" : "No");//判断是否可写
xlRange.Item(i + 2, 7).Value(file.canWrite() ? "Yes" : "No");//判断是否可读
}
String expression_r_r = "=Sum(B2:B" + (filenames.length + 1) + ")";
System.out.println("计算公式:" + expression_r_r);
xlRange.Item(filenames.length + 2, 1).Value("大小合计");
xlRange.Item(filenames.length + 2, 2).Formula(expression_r_r);//添加使用的表达式
xlRange.Columns().AutoFit();//可以自动调整列宽以适应文字
// xlSheet.PrintOut();//是否打印该文件
xlBook.SaveAs("testExcel.xls");//保存在上面的目录下
System.out.println("[Enter]");
System.in.read();
xlBook.Close(false, null, false);
excel.Quit();
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
} finally {
rm.release();
}
}
}