POI操作Excel详解,读取xls和xlsx格式的文件
package org.ian.webutil;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.poi.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class ReadExcel { private static final Log log = LogFactory.getLog(ReadExcel.class); /** * 判断后缀分批入 */ private static void parseSUCCEXX(String realPath,String fileName){ String [] pfix= fileName.split("\\."); String suffix = pfix[pfix.length -1]; if( suffix!=null&&!suffix.equals("")&&suffix.equals("xls")){ System.out.println("xls"); // jxl方法可读取.xls格式 jlxExcel(realPath,fileName); }else if(suffix .equals("xlsx")){ System.out.println("xlsx"); // poi方法可读取Excel2007即.xlsx格式 poiExcel(realPath,fileName); } } /** * 读取 xls JXL * @param realPath * @param fileName */ private static void jlxExcel(String realPath,String fileName){ //===============jlx方法================= try{ File fileDes = new File(realPath); InputStream str = new FileInputStream(fileDes); // 构造Workbook(工作薄)对象 Workbook rwb=Workbook.getWorkbook(str); Sheet rs=rwb.getSheet(0);//获取第一张工作表 int rsRows=rs.getRows();//获取Sheet表中所包含的总行数 int rsCols=rs.getColumns();//获取Sheet表中所包含的总列数 log.info("========行========"+rsRows+"=====列========"+rsCols); for(int i=1;i<rsRows;i++){//读取行 log.info("========执行第========"+i+"行"); for(int j=0;j<rsCols;j++){ log.info("========执行第========"+j+"列"); Cell coo=rs.getCell(j, i);//单元格定位列,再定位行 log.info("========coo========"+coo); String strc=coo.getContents();//读取内容 log.info("========读取内容strc========"+strc); System.out.println("文件"+fileName+"的内容为:"+strc); } } rwb.close(); }catch (FileNotFoundException e) { e.printStackTrace(); } catch (BiffException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //==========读取excel文件内容=结束===================== } /** * POI读取 xlsx * @param realPath * @param fileName */ private static void poiExcel(String realPath,String fileName){ try{ File fileDes = new File(realPath); InputStream str = new FileInputStream(fileDes); XSSFWorkbook xwb = new XSSFWorkbook(str); //利用poi读取excel文件流 XSSFSheet st = xwb.getSheetAt(0); //读取sheet的第一个工作表 int rows=st.getLastRowNum();//总行数 int cols;//总列数 log.info("========行========"+rows); for(int i=0;i<rows;i++){ XSSFRow row=st.getRow(i);//读取某一行数据 if(row!=null){ //获取行中所有列数据 cols=row.getLastCellNum(); log.info("========行========"+rows+"=====列========"+cols); for(int j=0;j<cols;j++){ XSSFCell cell=row.getCell(j); if(cell==null){ System.out.print(" "); }else{ //判断单元格的数据类型 switch (cell.getCellType()) { case XSSFCell.CELL_TYPE_NUMERIC: // 数字 System.out.print(cell.getNumericCellValue() + " "); break; case XSSFCell.CELL_TYPE_STRING: // 字符串 System.out.print(cell.getStringCellValue() + " "); break; case XSSFCell.CELL_TYPE_BOOLEAN: // Boolean System.out.println(cell.getBooleanCellValue() + " "); break; case XSSFCell.CELL_TYPE_FORMULA: // 公式 System.out.print(cell.getCellFormula() + " "); break; case XSSFCell.CELL_TYPE_BLANK: // 空值 System.out.println(""); break; case XSSFCell.CELL_TYPE_ERROR: // 故障 System.out.println("故障"); break; default: System.out.print("未知类型 "); break; } } } } } }catch(IOException e){ e.printStackTrace(); } } /** * test * @param args */ public static void main(String[] args) { String fileName = "banShot.xlsx"; String realPath = "d:/"+fileName; parseSUCCEXX(realPath, fileName); }}POI操作Excel详解,读取xls和xlsx格式的文件的更多相关文章
- POI操作Excel详解,HSSF和XSSF两种方式
package com.tools.poi.lesson1; import java.io.FileInputStream; import java.io.FileNotFoundException; ...
- POI操作Excel
POI和Excel简介 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作 ...
- POI操作Excel(xls、xlsx)
阿帕奇官网:http://poi.apache.org/ POI3.17下载:http://poi.apache.org/download.html#POI-3.17 POI操作Excel教程(易百教 ...
- java使用Apache POI操作excel文件
官方介绍 HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file format. XSSF is ...
- 自己封装的poi操作Excel工具类
自己封装的poi操作Excel工具类 在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完 ...
- 自己的包poi操作Excel工具
在前面的文章<使用poi读写Excel>中分享了一下poi操作Excel的简单演示样例.这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完毕的功能是:读取Excel.汇总E ...
- java使用POI操作excel文件,实现批量导出,和导入
一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...
- 利用Apache POI操作Excel
最近在做接口,有个功能是利用Excel导入汽车发动机所需零件信息到线上系统中.简单回顾一下之前学过的用java操作Excel. 1.maven配置Apache POI pom.xml中配置POIjar ...
- java里poi操作excel的工具类(兼容各版本)
转: java里poi操作excel的工具类(兼容各版本) 下面是文件内具体内容,文件下载: import java.io.FileNotFoundException; import java.io. ...
随机推荐
- python-写入excel(xlswriter)
一.安装xlrd模块: 1.mac下打开终端输入命令: pip install XlsxWriter 2.验证安装是否成功: 在mac终端输入 python 进入python环境 然后输入 imp ...
- linux性能压测工具
http://benjr.tw/532 http://blog.yufeng.info/archives/2023 https://www.cnblogs.com/zhoujinyi/archive/ ...
- [C#] 将NLog输出到RichTextBox,并在运行时动态修改日志级别过滤
作者: zyl910 一.缘由 NLog是一个很好用的日志类库.利用它,可以很方便的将日志输出到 调试器.文件 等目标,还支持输出到窗体界面中的RichTextBox等目标. 而且它还支持在运行时修改 ...
- 【ThinkPHP】解析ThinkPHP5创建模块
在根目录下有一个build.php文件,该文件是自动生成的,自动创建模块.build.php的文件内容如下: <?php return [ // 生成应用公共文件 '__file__' => ...
- C#做单元测试,如何查看输出的调试信息?
- [转]CentOS6 Linux上安装ss5服务器
本文章转自:http://blog.csdn.net/cuiyifang/article/details/10346239 最后我增加了添加防火墙规则的部分.感谢作者. ss5是常见的socks5 p ...
- ubuntu代理设置
很多时候,服务器都没有连接外部互联网的条件,需要利用代理服务器才能够访问外网资源进行软件包的升级: ubuntu修改apt-get的代理可以使用代理进行安装包的升级: ubuntu@ubuntu:~$ ...
- 谈一谈iOS事件的产生和传递
谈一谈iOS事件的产生和传递 1.事件的产生 发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中. UIApplication会从事件队列中取出最前面的事件,并将事件 ...
- PhpStorm连接Docker容器配置xdebug断点调试
本教程主要演示xdebug在PhpStorm中配置方法. 一.环境说明 1.Mac笔记本(本教程演示过程使用的是Mac OS操作系统,和windows环境是有区别的,这一点需要特别注意): 2.在Ma ...
- iOS 开发网络篇—监测网络状态
iOS开发网络篇—监测网络状态 一.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行 ...