创建execl,并向其中追加数据

首先去poi官网把poi的jar包下载

if(!file.exists()){

//第一步,创建一个workbook对应一个excel文件
       workbook = new HSSFWorkbook();
       //第二部,在workbook中创建一个sheet对应excel中的sheet
       sheet = workbook.createSheet("esim制卡");
     //第三部,在sheet表中添加表头第0行,老版本的poi对sheet的行列有限制
       HSSFRow row = sheet.createRow(0);
       //第四步,创建单元格,设置表头
       HSSFCell cell = row.createCell(0);
       cell.setCellValue("数量");
       cell = row.createCell(1);
       cell.setCellValue("开始ICCID");
       cell = row.createCell(2);
       cell.setCellValue("结束ICCID");
       cell = row.createCell(3);
       cell.setCellValue("开始IMSI");
       cell = row.createCell(4);
       cell.setCellValue("结束IMSI");
       cell = row.createCell(5);
       cell.setCellValue("短信中心");
       cell = row.createCell(6);
       cell.setCellValue("交换机");
       cell = row.createCell(7);
       cell.setCellValue("号段");
       
       //第五步,写入实体数据,实际应用中这些数据从数据库得到,对象封装数据,集合包对象。对象的属性值对应表的每行的值
       HSSFRow row1 = sheet.createRow(1);
       //创建单元格设值
       lineBuffer=new StringBuffer();

           row1.createCell(0).setCellValue(result.getNum());
           row1.createCell(1).setCellValue(out.getIccidB());
           row1.createCell(2).setCellValue(out.getIccidE());
           row1.createCell(3).setCellValue(out.getImsiB());
           row1.createCell(4).setCellValue(out.getImsiE());
           row1.createCell(5).setCellValue("+86"+out.getPhoneB());
           row1.createCell(6).setCellValue(out.getHlr());
           row1.createCell(7).setCellValue(result.getSeg());
}else{
FileInputStream fs=new FileInputStream(file);  //获取d://test.xls  
POIFSFileSystem ps=new POIFSFileSystem(fs);  //使用POI提供的方法得到excel的信息  
wb=new HSSFWorkbook(ps);    
HSSFSheet sheet2=wb.getSheetAt(0);  //获取到工作表,因为一个excel可能有多个工作表  
HSSFRow row=sheet2.getRow(0);  //获取第一行(excel中的行默认从0开始,所以这就是为什么,一个excel必须有字段列头),即,字段列头,便于赋值  
System.out.println(sheet2.getLastRowNum()+" "+row.getLastCellNum());  //分别得到最后一行的行号,和一条记录的最后一个单元格  
 
out2=new FileOutputStream(file);  //向d://test.xls中写数据  
row=sheet2.createRow((short)(sheet2.getLastRowNum()+1)); //在现有行号后追加数据  
row.createCell(0).setCellValue(result.getNum()); //设置第一个(从0开始)单元格的数据  
row.createCell(1).setCellValue(out.getIccidB()); //设置第二个(从0开始)单元格的数据  
row.createCell(2).setCellValue(out.getIccidE());
row.createCell(3).setCellValue(out.getImsiB());
row.createCell(4).setCellValue(out.getImsiE());
row.createCell(5).setCellValue("+86"+out.getPhoneB());
row.createCell(6).setCellValue(out.getHlr());
row.createCell(7).setCellValue(result.getSeg());



}
       
           //将文件保存到指定的位置
           try {
           
            if(!file.exists()){ 
            fos = new FileOutputStream(file);
               workbook.write(fos);
               fos.close();
               System.out.println("写入成功");
            }else{
            out2.flush();  
wb.write(out2); 
out2.close();  
            }
       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值