使用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();
- }
- }
使用该方法能够对数据进行导出。