四、数据存入excel

实现从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中

原文地址:https://www.cnblogs.com/Somture478/p/11856074.html