首先去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();
}