• java 操作Excel表格


    对于Excel表格的解析、生成,java在 org.apache.poi 包中已经封装好了,使用比较简单。

    解析Excel:

    首先将File文件转成InputStream

    InputStream in = file.getInputStream();

    然后创建表格对象,如果是2003版本的使用  HSSFWorkbook,2007以上的使用 XSSFWorkbook

     HSSFWorkbook workbook = new HSSFWorkbook(in);// 创建对Excel工作薄文件的引用

    接下来获取工作表

    HSSFSheet sheet = workbook.getSheetAt(0);// 引用第一张工作表

    获取行

    HSSFRow row = sheet.getRow(0);//获取第一行

    获取单元格

    HSSFCell cell=row.getCell(0)//获取第一个单元格

    获取单元格的内容

    String str=cell.getStringCellValue();//文本
    Double money=cell.getNumericCellValue();//数字

    可以这样封装一下

     private static String getStringFormCell(HSSFCell cell) {
            try {
                return cell.getStringCellValue();
            } catch (java.lang.IllegalStateException ex) {
                return String.valueOf(cell.getNumericCellValue());
            }
        }

    最后通过遍历行、列就能实现解析了

    生成Excel:

    生成excel要注意网页前端用ajax请求不能接收文件流,可以直接用超链接的方式直接GET调用后台方法,js的写法就是

    window.location.href=XXXXX //请求地址

    创建excel

    HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
    HSSFSheet sheet = hssfWorkbook.createSheet(sheetName);//创建工作表

    创建行

    HSSFRow row = sheet.createRow(rowIndex);

    创建一个单元格的格式(可选)

    HSSFCellStyle style = hssfWorkbook.createCellStyle();
    style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式

    创建一个单元格并设置格式、值

     HSSFCell cell = row.createCell(cellIndex);
     cell.setCellValue(cellValue);
     cell.setCellStyle(style);

    最后设置请求参数并输出文件

    response.setContentType("application/msexcel;charset=UTF-8");
    response.addHeader("Content-Disposition","attachment;filename=" + new String((fileName+ ".xls").getBytes("GBK"), "ISO8859_1"));
    OutputStream out = response.getOutputStream();
    hssfWorkbook.write(out);
    out.flush();
    out.close();
  • 相关阅读:
    树形dp(HDU1520)
    POJ3071(概率DP)
    网络流之FF算法(poj1273&&洛谷P3376)
    二分图匹配之匈牙利算法
    江西财经大学第二届程序设计竞赛——E
    浅谈数位dp
    浅谈数位dp——hdu 不要62
    buns~~~一个简单的背包问题
    POJ 1066 Treasure Hunt (线段相交)
    POJ 2653 Pick-up sticks (线段相交)
  • 原文地址:https://www.cnblogs.com/GuoJunwen/p/7773505.html
Copyright © 2020-2023  润新知