zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    Jquery里live事件移除原因
    js委托事件-addEventListeners(冒泡方向)
    后端同同不肯给我算好的时间差给我,只好自己写了:
    js滚动到顶部底部代码
    浏览器地址栏运行HTML代码(谷歌)
    黑马vue---56-58、vue组件创建的三种方式
    黑马vue---46、vue使用过渡类名实现动画
    黑马vue---28、vue中全局过滤器的基本使用
    vue devtools无法使用
    红心点赞效果的实现
  • 原文地址:https://www.cnblogs.com/GuoJunwen/p/7773505.html
Copyright © 2011-2022 走看看