Android 添加数据到本地Excel表中

由于项目需要,今天学习了一下如何将程序里的数据添加到本地的Excel表中。
下面为学习笔记:
先上效果图:
Android 添加数据到本地Excel表中_第1张图片

Android 添加数据到本地Excel表中_第2张图片

Android 添加数据到本地Excel表中_第3张图片

首先,需要导入jxl.jar包到libs文件夹内。
然后创建Excel表,并往表里添加表头。

    // 创建excel表.
    public void createExcel(File file) {
        WritableSheet ws = null;
        try {
            if (!file.exists()) {
                // 创建表
                wwb = Workbook.createWorkbook(file);
                // 创建表单,其中sheet表示该表格的名字,0表示第一个表格,
                ws = wwb.createSheet("sheet1", 0);
                // 在指定单元格插入数据
                Label lbl1 = new Label(0, 0, "姓名");// 第一个参数表示,0表示第一列,第二个参数表示行,同样0表示第一行,第三个参数表示想要添加到单元格里的数据.
                Label bll2 = new Label(1, 0, "性别");     
                // 添加到指定表格里.
                ws.addCell(lbl1);
                ws.addCell(bll2);
                // 从内存中写入文件中
                wwb.write();
                wwb.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

然后当想往表里添加数据时,应该:

public void writeToExcel(String name, String gender) {
        try {
            //每次插入数据,都要取原来的表,然后新建一个表,然后将原来的表的内容添加到新表上.但只要两个路径相同的话,效果相当于在原来的表添加.
            Workbook oldWwb = Workbook.getWorkbook(excelFile);
            wwb = Workbook.createWorkbook(excelFile, oldWwb);
            //获取指定索引的表格
            WritableSheet ws = wwb.getSheet(0);
            // 获取该表格现有的行数
            int row = ws.getRows();
            Label lbl1 = new Label(0, row, name);
            Label bll2 = new Label(1, row, gender);
            ws.addCell(lbl1);
            ws.addCell(bll2);
            // 从内存中写入文件中,只能刷一次.
            wwb.write();
            wwb.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

通过以上关键代码,即可实现添加数据到本地Excel表中。
在写入数据到Excel表中,每次都打开原来文件,并读取数据,然后再建一个新表,将数据读取到新表中。虽然如果连个文件路径,且文件名一样,则效果与直接往旧表添加的效果是一样的。但这里考虑到效率的问题,总觉得这种添加数据的方法太过繁琐,因此这里还望大神指教。
本文Demo Android 添加数据到本地Excel表 Demo

本文参考了:
http://blog.csdn.net/super_level/article/details/7785506

你可能感兴趣的:(Android)