android JXL 导出Excel(.xls/xlsx)
前面使用过 POI 导出xlsx但是它体量比较大,功能较丰富,在一些对包size比较敏感并且导出需求相对简单的项目中就不太适合。
poi链接:Android 导入导出excel xls、xlsx_android excel导入导出-CSDN博客
jxl 包体积小,使用简单、API 直观。
1.导入依赖
implementation(\"net.sourceforge.jexcelapi:jxl:2.6.12\")
2.导出方式,可根据自身需求修改
public static boolean exportExcel(Context context, List contactList) { try { File dir = context.getExternalFilesDir(null); File file = new File(dir, \"联系人.xlsx\"); if (file.exists()) { file.delete(); } WritableWorkbook workbook = Workbook.createWorkbook(file); WritableSheet sheet = workbook.createSheet(\"联系人\", 0); // 设置列宽(单位:字符数) 可根据实际情况调整 sheet.setColumnView(0, 10); // 姓名 sheet.setColumnView(1, 20); // 组织 sheet.setColumnView(2, 15); // 个人电话 sheet.setColumnView(3, 15); // 家庭电话 sheet.setColumnView(4, 15); // 工作电话 sheet.setColumnView(5, 30); // 邮箱 sheet.setColumnView(6, 40); // 备注 // 写入表头 sheet.addCell(new Label(0, 0, \"姓名\")); sheet.addCell(new Label(1, 0, \"组织\")); sheet.addCell(new Label(2, 0, \"个人电话\")); sheet.addCell(new Label(3, 0, \"家庭电话\")); sheet.addCell(new Label(4, 0, \"工作电话\")); sheet.addCell(new Label(5, 0, \"邮箱\")); sheet.addCell(new Label(6, 0, \"备注\")); // 写入数据 for (int i = 0; i < contactList.size(); i++) { Contact c = contactList.get(i); sheet.addCell(new Label(0, i + 1, c.getName())); sheet.addCell(new Label(1, i + 1, c.getOrg())); sheet.addCell(new Label(2, i + 1, c.getPhone())); sheet.addCell(new Label(3, i + 1, c.getHomePhone())); sheet.addCell(new Label(4, i + 1, c.getWorkPhone())); sheet.addCell(new Label(5, i + 1, c.getEmail())); sheet.addCell(new Label(6, i + 1, c.getNote())); } workbook.write(); workbook.close(); Log.d(\"导出文件\", \"导出成功 path:\" + file.getPath()); return true; } catch (Exception e) { e.printStackTrace(); } return false; } public static class Contact { private String Name; private String phone; private String email; private String org; private String note; private String homePhone; private String workPhone; get set 省略 }
3.使用
new Thread(new Runnable() { @Override public void run() { List contacts = new ArrayList(); for (int i = 0; i < 10; i++) { ExportFile.Contact contact = new ExportFile.Contact(); contact.setName(\"刘二毛\" + i); contact.setPhone(\"1234567890\" + i); contact.setHomePhone(\"0395-550999\" + i); contact.setWorkPhone(\"0397-999999\" + i); contact.setEmail(\"liuermao666@Gmail.eslssdkj.com\"); contact.setNote(\"备注\" + i); contact.setOrg(\"组织结构\" + i); contacts.add(contact); } boolean result = ExportFile.exportExcel(ActivityLianXiRen.this, contacts); } }).start();