try { /** * 后续考虑问题,好比Excel里面的图片以及其余数据类型的读取 **/ InputStream is = new FileInputStream(path); Workbook book = Workbook.getWorkbook(is); int num = book.getNumberOfSheets(); publishProgress("the num of sheets is " + num+ "\n"); if (num <2) { return -2; } // 得到第一个工做表对象:时间,电流值 Sheet sheet = book.getSheet(0); int Rows = sheet.getRows(); int Cols = sheet.getColumns(); publishProgress("the name of sheet 1 is " + sheet.getName() + "\n"); publishProgress("total rows is " + Rows + "\n"); publishProgress("total cols is " + Cols + "\n"); if (Cols != 2) { publishProgress("第一个工做表格式错误,第一列为时间(13位时间戳),第二列为电流值,导入中止"); return -2; } for (int i = 0; i < Rows; i++) { String str1 = sheet.getCell(0,i).getContents(); if (str1 == null || str1.isEmpty() || str1.length()!=13) { continue; } long longStr1 = -1L; try { longStr1 = Long.parseLong(str1); } catch (Exception e) { } String str2 = sheet.getCell(1,i).getContents(); if (str2 == null || str2.isEmpty()) { continue; } float floatStr2 = -2F; try { floatStr2 = Float.parseFloat(str2); } catch (Exception e) { } if (longStr1 == -1 || floatStr2 == -2F) { continue; } publishProgress("contents:" + longStr1+","+ floatStr2 + "\n"); //插入血糖 GlucoseData vData = new GlucoseData(); vData.setGlucoseElecValue(floatStr2); vData.setGlucoseTime(new Date(longStr1)); vData.setGlucoseValue(-1F); vDataDao.insert(vData); } // 得到第二个工做表对象:时间,血糖值 sheet = book.getSheet(1); Rows = sheet.getRows(); Cols = sheet.getColumns(); publishProgress("the name of sheet 2 is " + sheet.getName() + "\n"); publishProgress("total rows is " + Rows + "\n"); publishProgress("total cols is " + Cols + "\n"); if (Cols != 2) { publishProgress("第二个工做表格式错误,第一列为时间(13位时间戳),第二列为参比血糖值,导入中止"); return -2; } for (int i = 0; i < Rows; i++) { String str1 = sheet.getCell(0,i).getContents(); if (str1 == null || str1.isEmpty() || str1.length()!=13) { continue; } long longStr1 = -1L; try { longStr1 = Long.parseLong(str1); } catch (Exception e) { } String str2 = sheet.getCell(1,i).getContents(); if (str2 == null || str2.isEmpty()) { continue; } float floatStr2 = -2F; try { floatStr2 = Float.parseFloat(str2); } catch (Exception e) { } if (longStr1 == -1 || floatStr2 == -2F) { continue; } publishProgress("contents:" + longStr1+","+ floatStr2 + "\n"); //插入血糖 GlucoseRefData vData = new GlucoseRefData(); vData.setGlucoseRefValue(floatStr2); vData.setGlucoseRefTime(new Date(longStr1)); vGlucoseRefData.insert(vData); } book.close(); publishProgress("完成数据导入\n"); return 0; } catch (Exception e) { publishProgress(e.toString()); return -1; }
try { // 建立或打开Excel文件 WritableWorkbook book = Workbook.createWorkbook(new File(mResultPath)); // 生成名为“第一页”的工做表,参数0表示这是第一页 WritableSheet sheet1 = book.createSheet("result", 0); List<GlucoseData> vList = vDataDao.loadAll(); if (vList!=null) { for (int i = 0; i < vList.size(); i++) { jxl.write.Number number2 = new jxl.write.Number(0, i,vList.get(i).getGlucoseTime().getTime()); sheet1.addCell(number2); jxl.write.Number number3 = new jxl.write.Number(1, i,vList.get(i).getGlucoseElecValue()); sheet1.addCell(number3); jxl.write.Number number = new jxl.write.Number(2, i,vList.get(i).getGlucoseValue()); sheet1.addCell(number); } } // 写入数据并关闭文件 book.write(); book.close(); } catch (Exception e) { Log.d("algorithm", "WritableWorkbook exception: "+e.toString()); publishProgress("WritableWorkbook exception: "+e.toString()); return -3; }