基于jcom,java写数据到excel方式一(ExcelWorkbook)

来源:互联网 发布:欧陆风云4秘籍源码 编辑:程序博客网 时间:2024/05/17 07:18

 

配置环境:

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();
  }
 }
}

原创粉丝点击