本文共 2386 字,大约阅读时间需要 7 分钟。
主要根据 jxl.jar 进行数据采集的时候 Excel 格式进行存储数据
ListmList = new ArrayList (); for (int i = 0; i < 50; i++) { ExcelInfo mExcelInfo = new ExcelInfo(); mExcelInfo.temperature = String.format("%.1f °C", Math.random() * 40); mList.add(mExcelInfo); } // 新增 Excel 数据 ExcelUtil.updateExcel(mList);
建立一个Excel 保护Execel名称,行列,排版类型
public static void createExcel() throws Exception { WritableWorkbook wwb; OutputStream os; File file; File dir = new File(FILE_PATH); file = new File(dir, FILE_NAME); if (!dir.exists()) { dir.mkdirs(); } if (!file.exists()) { file.createNewFile(); } // 创建Excel工作表 os = new FileOutputStream(file); wwb = Workbook.createWorkbook(os); // 添加第一个工作表并设置第一个Sheet的名字 WritableSheet sheet = wwb.createSheet(SHEET_0, SHEET_ID_0); Label label; // Label(x,y,z) 代表单元格的第x+1列,第y+1行, 内容z, 排版格式 label = new Label(0, 0, ExcelInfo.head_temperature_label, getHeader()); sheet.addCell(label); if (null != wwb) { // 写入数据 wwb.write(); // 关闭文件 wwb.close(); } }
随着Excel添加的内容越来越大,性能上会越来越明显,尤其是连续1小时后,建议分表添加
public static void appendExcel(ListmList) throws IOException, BiffException, WriteException { Workbook rwb = Workbook.getWorkbook(new File(ABSOLUTE_FILE_PATH)); WritableWorkbook wwb = Workbook.createWorkbook(new File(ABSOLUTE_FILE_PATH), rwb);// copy WritableSheet sheet = wwb.getSheet(0); Label label; for (int i = 0; i < mList.size(); i++) { // Label(x,y,z) 代表单元格的第x+1列,第y+1行, 内容z //int currentColumns = sheet.getColumns(); int currentRow = sheet.getRows(); label = new Label(0, currentRow, mList.get(i).temperature); sheet.addCell(label); } if (null != wwb) { wwb.write(); wwb.close(); } }
/** 删除 Excel */ public static void delExcel() { File file = new File(ABSOLUTE_FILE_PATH); if (file.exists()) { file.delete(); } Log.d(TAG, "delExcel"); }