• Java 操作 EXCEL


      今天帮朋友写了一段用来处理EXCEL内容的程序,在这里记录下自己的学习过程。主要是对EXCEL表格中的内容做分类和统计,使用计算机来做这种重复的机械性地工作再好不过了。首先,我们需要下载一个java操作excel的开源插件,我使用的是jexcelapi(下载链接:http://120.52.73.49/nchc.dl.sourceforge.net/project/jexcelapi/jexcelapi/2.6.6/jexcelapi_2_6_6.zip)。进行解压,如果使用Eclipse等IDE需要在project->properties->Java Build Path 里面添加jxl.jar文件。至此,开发环境搭建完成。下面展开具体的操作:

      1、定义数据类型,因为每一列的数据类型不同,这里采用类数据类型来存储,采用对象数组来存储每一行的内容。

    class record{
        private int num;
        private char ty;
        public void SetNum(String s1){
            this.num=Integer.parseInt(s1);
        }
        public void SetTy(String s2){
            this.ty=(char)s2.getBytes()[0];
        }
            public int GetNum(){
                     return num;
            } 
            public char GetTy(){
                     return ty;
            }     
    }                
    record a[] = new record[row];
    for(int i=0;i<row;i++)
        a[i]= new record();
    View Code

      注意代码中对对象数组的每一个元素初始化的过程,否则会出现java.lang.NullPointerException的异常抛出。

      2、连接到EXCEL,获取工作空间,我们用到了Workbook和Sheet类,在之前导入的jxl包里面。

    //创建一个读取excel的容器
    Workbook book = Workbook.getWorkbook(new File("G:/test123.xls"));
    //读取第一页
    Sheet sheet = book.getSheet(0);
    //读取电子表格和列数和行数
    int col = sheet.getColumns();
    int row = sheet.getRows();
    View Code

      3、读取每一个单元格的内容。将单元格的数据读取到数组中之后,接下来的工作可根据具体情况完成实际操作。

    for(int i=0;i<row;i++){
        //第一个参数代表列,第二个参数代表行
        Cell cell1=sheet.getCell(0, i);
        Cell cell2=sheet.getCell(1, i);
        a[i].set_num(cell1.getContents());
        a[i].set_ty(cell2.getContents());
    }
    View Code

      4、根据需求完成相关操作后,需要将数据写会Excel表格中,我们用到了WritableWorkbook和WritableSheet两个类。

    //创建一个可写excel文件
    WritableWorkbook bookw = Workbook.createWorkbook(new File("G:/testwtb.xls"));
    //写入excel的第一页
    WritableSheet sheetw = bookw.createSheet("first sheet",0);
    for(int i=0;i<=index;i++){
        Number n = new Number(0,i,x[i]);
        sheetw.addCell(n);
        Number n1 = new Number(1,i,y[i]);
        sheetw.addCell(n1);
        Number n2 = new Number(2,i,z[i]);
        sheetw.addCell(n2);
        Number n3 = new Number(3,i,xx[i]);
        sheetw.addCell(n3);
    }
    bookw.write();
    bookw.close();
    View Code

    至此,所有操作完成。

  • 相关阅读:
    SlidingMenu官方实例分析2——BaseActivity
    SlidingMenu官方实例分析1——ExampleListActivity
    SlidingMenu——使用前的配置
    获得String形式日期的后一天
    android中TabHost和RadioGroup
    android中文字斜着显示
    OpenGL ES andoid学习————2
    OpenGL ES andoid学习————1
    Gallery学习————检测手机中是否存在外部存储设备
    Java读取xml数据
  • 原文地址:https://www.cnblogs.com/triplewood/p/5116757.html
Copyright © 2020-2023  润新知