java操作poi导出Excel

public void deleteFile(String filepath) throws IOException {

File f = new File(filepath);//定义文件路径
  if (f.exists() && f.isDirectory()) {//判断是文件还是目录
   if (f.listFiles().length == 0) {//若目录下没有文件则直接删除
    f.delete(); 
   } else {//若有则把文件放进数组,并判断是否有下级目录
    File delFile[] = f.listFiles();
    int i = f.listFiles().length;
    for (int j = 0; j < i; j++) {
     if (delFile[j].isDirectory()) { 
      deleteFile(delFile[j].getAbsolutePath());//递归调用del方法并取得子目录路径
     } 
     delFile[j].delete();//删除文件
    }
   } 
   deleteFile(filepath);//递归调用

  } else { 
   f.delete();
  }

//1:java导出Excel            {

HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls

XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx


对于不同版本的EXCEL文档要使用不同的工具类,如果使用错了,会提示如下错误信息。

org.apache.poi.openxml4j.exceptions.InvalidOperationException

org.apache.poi.poifs.filesystem.OfficeXmlFileException

}

  WritableWorkbook workbook = null; //创建一个Excel文件
          WritableSheet sheet = null;       //excel中的sheet
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); //缓存文件的存放
    String realPath = filepath + fileName;
       try { 
      workbook = Workbook.createWorkbook(new File(realPath));
      } catch (IOException e1) {
       e1.printStackTrace();
     } 
   
   try {
       sheet = workbook.createSheet("sheet1", 0); // 创建第一个sheet
       for (int i = 0; i < columnHeaders.size(); i++) {// 表头
        sheet.addCell(new Label(i, 0, columnHeaders.get(i)));
       }
       for (int i = 0; i < rows.size(); i++) {
        List<String> row = rows.get(i);    // sheet列
        for (int j = 0; j < row.size(); j++) {
         sheet.addCell(new Label(j, i + 1, row.get(j)));  // sheet行
        }
            }
      workbook.write();   // 写入信息
       workbook.close();   // 关闭excel表
      } catch (Exception e) {
       try {
        workbook.close();
       } catch (WriteException e1) {
        e1.printStackTrace();
       } catch (IOException e1) {
        e1.printStackTrace();
       }
      }
     return realPath;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值