zoukankan      html  css  js  c++  java
  • Java学习---Excel读写操作

    1.1.1. 简介 Apache POI

    使用Apache POI 完成Excel读写操作

    Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。

    http://poi.apache.org/ 下载POI的jar包 ,包括以下内容

    wpsDA1A.tmp[1]

    Excel 2003之前 xls 格式文件, Excel2007 文件格式 xlsx ,如果解析Excel,先分清Excel文件版本 ,如果2003之前, 使用HSSF API进行解析 、 如果 2007 Excel 使用 XSSF 进行解析

    今天重点学习: HSSF 的 Excel解析 (针对Excel 2003 之前版本 )

    下载 POI 3.9 的jar 包,完成Excel 读写操作

    wpsDA1B.tmp[1]

    docs  POI使用文档 (javadoc文档、 规范文档)

    学习API : 推荐 POI3.5_HSSF_和XSSF_Excel操作快速入门手册.pdf

    lib :相关jar包

    ooxml-lib : 解析2007 Office版本文件jar 包

    开发POI 最简单方式,导入 poi-3.9-20121203.jar 一个jar包就可以了

    1.1.2.使用POI 读写Excel

    参考: “POI整理.doc” 进行企业开发

    编写代码,完成Excel解析和生成

    解析步骤:

    Excel文件 ---- HSSFWorkbook 工作薄对象 ---- Sheet --- Row 行--- Cell 单元格

    解析时要注意,如果Excel单元格的数据,使用numeric 格式保存,不能使用 getStringCellValue 进行读取 , 使用 getNumericCellValue 进行读取

    可以在Excel 设置单元格 数据保存格式 为文本类型,使用 getStringCellValue 进行读取

    wpsDA2C.tmp[1]

    读取一个Excel文件

    // 1、 获得 HSSFWorkbook (针对 xls格式文件 )
    HSSFWorkbook hssfWorkbook = new HSSFWorkbook(new FileInputStream("info.xls"));
    // 2、获得要解析sheet
    HSSFSheet sheet = hssfWorkbook.getSheet("Sheet1"); // 通过名称获得Sheet
    HSSFSheet sheet2 = hssfWorkbook.getSheetAt(0);// 获得第一个Sheet,通过下标获得
    // 3、解析Sheet中每一行
    for (Row row : sheet) {
    // 遍历 sheet中每一行
    // 4、 打印行 中单元格数据
    for (Cell cell : row) {
    // 判断单元格数据类型
    if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
    System.out.println(cell.getStringCellValue());
    } else if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
    System.out.println(cell.getNumericCellValue());
    }
    }
    // 打印指定单元格的值
    System.out.println(row.getCell(1).getStringCellValue());// 打印每行第二个单元格的内容
    }

    生成一个Excel文件 :

    // 写Workbook 工作薄 --- 写Sheet --- 写Row 行 --- 写Cell 单元格 
    // 1、 创建 一个空的工作薄
    HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
    // 2、 在工作薄建立 Sheet
    HSSFSheet sheet = hssfWorkbook.createSheet("数据信息");
    // 3、 向sheet写入行数据
    HSSFRow row = sheet.createRow(0);// 创建第一行数据
    // 4、 向row中单元格进行数据输出
    row.createCell(0).setCellValue("产品");
    row.createCell(1).setCellValue("价格");
    // 5、 将Excel 数据输出到硬盘上
    hssfWorkbook.write(new FileOutputStream("c:/test.xls"));
    

    更多学习参考

    点击下载

  • 相关阅读:
    Linux常用命令-centos
    USACO 2006 Open, Problem. The Country Fair 动态规划
    USACO 2007 March Contest, Silver Problem 1. Cow Traffic
    USACO 2007 December Contest, Silver Problem 2. Building Roads Kruskal最小生成树算法
    USACO 2015 February Contest, Silver Problem 3. Superbull Prim最小生成树算法
    LG-P2804 神秘数字/LG-P1196 火柴排队 归并排序, 逆序对
    数据结构 并查集
    浴谷国庆集训 对拍
    1999 NOIP 回文数
    2010 NOIP 普及组 第3题 导弹拦截
  • 原文地址:https://www.cnblogs.com/ftl1012/p/9357200.html
Copyright © 2011-2022 走看看