1,添加poi的jar包
2,建立workbook,并生成sheet,row以及单元格cell
private Workbook workbook; private Sheet sheet;
//创建工作簿 workbook = new HSSFWorkbook(); //创建execl中的一个表 sheet= workbook.createSheet(); //设置第一列的宽度是9个字符宽度 sheet.setColumnWidth(1,10*256); sheet.setColumnWidth(2,4*256); //创建第一行 Row row=sheet.createRow(0); // 设置第一行:高为50个点 row.setHeightInPoints(50); //创建第一行中第一单元格 row.createCell(0).setCellValue("时间"); row.createCell(1).setCellValue("rssi值");
//随着数据的不断传递,不断增加Excel的行 private void createRows(int i,String date,int rssi){ //创建第二行 Row row=sheet.createRow(i); // 设置第二行:高为50个点 row.setHeightInPoints(50); //创建第一行中第一单元格 row.createCell(0).setCellValue(date); row.createCell(1).setCellValue(rssi); }
3,输出到手机内存中
writeFile(Environment.getExternalStorageDirectory() + "/" + getFileName("12:3B:6A:1A:95:56"));
private void writeFile( String fileName){ FileOutputStream outputStream=null; try{ outputStream=new FileOutputStream(fileName); workbook.write(outputStream); }catch (Exception e){ e.printStackTrace(); }finally { try{ if(outputStream!=null){ outputStream.close(); } if(workbook!=null){ workbook.close(); } }catch (Exception e){ e.printStackTrace(); } } }
//去除蓝牙设备地址中的冒号,用来给保存的文档命名 private static String getFileName(String address) { char[] addressChar = address.toCharArray(); char[] addressCharResult = new char[]{addressChar[0], addressChar[1], addressChar[3], addressChar[4], addressChar[6], addressChar[7], addressChar[9], addressChar[10], addressChar[12], addressChar[13], addressChar[15], addressChar[16]}; String fileName = String.valueOf(addressCharResult); return fileName + ".xls"; }