用JCom生成Excel文档

代码: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 TestJcom{

	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("c:/");//创建一个文件对象(.表示当前路径下或者使用(./))
			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 = "=Sum(B2:B" + (filenames.length + 1) + ")";
			System.out.println("计算公式:" + expression);
			xlRange.Item(filenames.length + 2, 1).Value("大小合计");
			xlRange.Item(filenames.length + 2, 2).Formula(expression);//添加使用的表达式
			xlRange.Columns().AutoFit();//可以自动调整列宽以适应文字

//			 xlSheet.PrintOut();//是否打印该文件
			 xlBook.SaveAs("testExcel3.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();
		}
	}
}
 

你可能感兴趣的:(.net,工作,Excel)