由于项目需要,今天学习了一下如何将程序里的数据添加到本地的Excel表中。
下面为学习笔记:
先上效果图:
首先,需要导入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