实现从eclipse向excel中存储数据
首先我们要先了解excel的文件层次:
Excel文件->工作表->行->单元格
对应到POI中,为:
workbook->sheet->row->cell
1.需要先下载POI包
下载链接:http://poi.apache.org/download.html
下载完成后解压文件夹
2.在eclipse中新建项目后导入POI包
3.新建一个Row_Cell类(存放excel的行和列)
分别生成对应的set和get方法。
4.新建一个toExcel类(实现数据存入excel中)
定义我们所需要的变量:
//excel存放路径 public static String outputFile = "C:\Somture_Test\b5_test.xls"; //Excel文件 HSSFWorkbook workbook; //工作表 HSSFSheet sheet; //行 HSSFRow row; //单元格 HSSFCell cell; //时间 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time; //Row_Cell对象 Row_Cell rc;
在toExcel的构造方法中实例化workbook,sheet,rc,例如:
workbook = new HSSFWorkbook(); sheet = workbook.createSheet("电流-电压-时间"); rc = new Row_Cell();
在回调消息类中的messageArrived方法中将要存的数据传入toExcel的write_Excel(String I, Row_Cell row_cell)中
//获取当前时间 time = new String(df.format(System.currentTimeMillis())); //数据的分隔符 String[] datas = I.split("--"); int rrow = rc.getRow();//行 int ccell = rc.getCell();//列 int k = rc.getK(); boolean flag = rc.isFlag();
进行判断:
若flag是false,则将flag设置成true
若flag是true,则存入信息
row=sheet.createRow( (short)rrow); cell=row.createCell( (short)ccell++); //设置单元格内容 cell.setCellValue(datas[0]); cell=row.createCell( (short)ccell++); cell.setCellValue(datas[1]); cell=row.createCell( (short)ccell++); cell.setCellValue(datas[2]); cell=row.createCell( (short)ccell++); cell.setCellValue(datas[3]); cell=row.createCell( (short)10); cell.setCellValue(time); ccell = ccell-4; rc.setRow(++rrow); rc.setCell(ccell); rc.setK(k); rc.setFlag(flag); // 新建一输出文件流 FileOutputStream fOut = new FileOutputStream(outputFile); // 把相应的Excel 工作簿存盘 workbook.write(fOut); fOut.flush(); // 操作结束,关闭文件 fOut.close(); System.out.println("文件生成...");
以上便是将消息以四列的格式存入excel中