Android通过jxl.jar实现对excel的操作

时间:2021-01-03 09:13:05

最近由于需要写一个在Android平台上生成Excel报表的东西,度娘了许久之后,发现有一个叫jxl.jar可以实现java对Excel的操纵,功能十分强大,操纵起来也很方便。在这里做一个总结:

首先,要在项目实现对excel的操作,必须引入jxl.jar,首先要在项目中创建一个名字为lib的文件夹,将下载jxl.jar文件放到该目录底下即可

引入完第三方jar包后,就可以在代码中对excel进行操作啦

创建Excel表格

public  void excelCreate() {
        try {   
            // 输出的excel的路径   
            String filePath = Environment.getExternalStorageDirectory()+"/myEcell.xls";   
            // 创建Excel工作薄   
            WritableWorkbook wwb;   
            // 新建立一个jxl文件,即在SDcard盘下生成test.xls   
            OutputStream os = new FileOutputStream(filePath);   
            wwb=Workbook.createWorkbook(os);    
   
    ............  //中间省略Excel的操作,会在接下来详解

            // 写入数据   
            wwb.write();   
            // 关闭文件   
            wwb.close();   
        } catch (Exception e) {   
            e.printStackTrace();   
        }   
}


创建一个单元表sheet

WritableSheet sheet = wwb.createSheet(strSheetName, intSheetIndex);   

定义一个单元格数据

单元格的数据主要分为Number、Label、Boolean、DateTime、Image、RGB等
从api可以看到他们各有三个构造方法,我们拿Number出来看

Number:

Number(int c, int r, double val) 
          Constructs a number, which, when added to a spreadsheet, will display the specified value at the column/row position indicated.
Number(int c, int r, double val, CellFormat st) 
          Constructs a number, which, when added to a spreadsheet, will display the specified value at the column/row position with the specified CellFormat.
Number(NumberCell nc) 
          Constructor used internally by the application when making a writable copy of a spreadsheet that has been read in

我们从最简单的构造方法Number(int c, int r, double val) ,可以看出c参数表示列数,r表示行数,val表示自己要设置的值,其实意思就是:设置一个值,通过c和r放到你想要放的地方去。比如把数字2放到2行1列哪个单元格中,就可以这么定义:

jxl.write.Number number = new jxl.write.Number(1,2,2);   

将单元格数据添加到sheet表中

sheet.addCell(number);  //sheet是我们要插入数据的单元表,number是以上我们定义的数据,addCell即是将我们要插入的数据插入到对应的单元表中