很久没写Android代码了。
使用jxl导出excle数据
首先项目得导入jxl.jar
以下是导出方法:
// 导出数据
public void export(ArrayList<Account> list) {
Calendar c = Calendar.getInstance();
String filename = Integer.toString(c.get(Calendar.YEAR))
+ Integer.toString(c.get(Calendar.MONTH + 1))
+ Integer.toString(c.get(Calendar.DAY_OF_MONTH));
int random = (int) (Math.random() * 1000);
WritableWorkbook wwb = null;
try {
// 首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
wwb = Workbook.createWorkbook(new File(Environment
.getExternalStorageDirectory()
+ "/"
+ filename
+ "_"
+ random + ".xls"));
} catch (IOException e) {
e.printStackTrace();
}
if (wwb != null) {
// 创建一个可写入的工作表
// Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("工作表名称", 0);
// 下面开始添加单元格
String[] topic = { "序号", "金额", "项目", "时间", "支付方式", "商家/支付方", "成员",
"备注", "类别" };
for (int i = 0; i < topic.length; i++) {
Label labelC = new Label(i, 0, topic[i]);
try {
// 将生成的单元格添加到工作表中
ws.addCell(labelC);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
Account account;
ArrayList<String> li;
for (int j = 0; j < list.size(); j++) {
account = list.get(j);
li = new ArrayList<String>();
li.add(Integer.toString(account.get_id()));
li.add(Float.toString(account.getMoney()));
li.add(account.getCategory().toString());
li.add(account.getDatetime().toString());
li.add(account.getMethod().toString());
li.add(account.getMerchant().toString());
li.add(account.getMumber().toString());
li.add(account.getDescript().toString());
li.add(account.getWhat().toString());
System.out.println(li.size());
int k = 0;
for (String l : li) {
Label labelC = new Label(k, j + 1, l);
k++;
try {
// 将生成的单元格添加到工作表中
ws.addCell(labelC);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
li = null;
}
}
try {
// 从内存中写入文件中
wwb.write();
// 关闭资源,释放内存
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
使用该方法能够对数据进行导出。