解析xls文件

/**
* 解析xls文件
*
* @param path 文件路径
* @throws Exception
*/
public static void showXls(String path) throws Exception {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(new File(path)));
HSSFSheet sheet = null;
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {// 获取每个Sheet表
sheet = workbook.getSheetAt(i);
for (int j = 0; j < sheet.getLastRowNum() + 1; j++) {// getLastRowNum,获取最后一行的行标
HSSFRow row = sheet.getRow(j);
if (row != null) {
for (int k = 0; k < row.getLastCellNum(); k++) {// getLastCellNum,是获取最后一个不为空的列是第几个
if (row.getCell(k) != null) { // getCell 获取单元格数据
System.out.print(row.getCell(k) + "\t");
} else {
System.out.print("\t");
}
}
}
System.out.println(""); // 读完一行后换行
}
System.out.println("读取sheet表:" + workbook.getSheetName(i) + " 完成");
}
}

  解析xlsx文件

/**
* 解析xlsx文件
*
* @param path 文件路径
* @throws Exception
*/
public static void showXlsx(String path) throws Exception {
File excelFile = new File(path);
XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(excelFile));
XSSFSheet sheet = wb.getSheetAt(0);
for (int i = 0; i < wb.getNumberOfSheets(); i++) {// 获取每个Sheet表
sheet = wb.getSheetAt(i);
for (int j = 0; j < sheet.getLastRowNum() + 1; j++) {// getLastRowNum,获取最后一行的行标
XSSFRow row = sheet.getRow(j);
if (row != null) {
for (int k = 0; k < row.getLastCellNum(); k++) {// getLastCellNum,是获取最后一个不为空的列是第几个
if (row.getCell(k) != null) { // getCell 获取单元格数据
System.out.print(row.getCell(k) + "\t");
} else {
System.out.print("\t");
}
}
}
System.out.println(""); // 读完一行后换行
}
System.out.println("读取sheet表:" + wb.getSheetName(i) + " 完成");
}
}

  解析xls和xlsx文件

/**
* 解析xls和xlsx文件
*
* @param path 文件路径
* @throws Exception
*/
public static void showExcel(String path) throws Exception {
String fileType = path.substring(path.lastIndexOf(".") + 1, path.length());
Workbook wb = null;
if ("xls".equals(fileType)) {
wb = new HSSFWorkbook(new FileInputStream(new File(path)));
} else {
wb = new XSSFWorkbook(new FileInputStream(path));
}
Sheet sheet = null;
for (int i = 0; i < wb.getNumberOfSheets(); i++) {// 获取每个Sheet表
sheet = wb.getSheetAt(i);
for (int j = 0; j < sheet.getLastRowNum() + 1; j++) {// getLastRowNum,获取最后一行的行标
Row row = sheet.getRow(j);
if (row != null) {
for (int k = 0; k < row.getLastCellNum(); k++) {// getLastCellNum,是获取最后一个不为空的列是第几个
if (row.getCell(k) != null) { // getCell 获取单元格数据
System.out.print(row.getCell(k) + "\t");
} else {
System.out.print("\t");
}
}
}
System.out.println(""); // 读完一行后换行
}
System.out.println("读取sheet表:" + wb.getSheetName(i) + " 完成");
}
}

  

main方法

 public static void main(String[] args) throws Exception {
showExcel("E:\\upload\\测试.xls");
}

  

poi解析excle文件(xls,xlsx)的更多相关文章

  1. poi解析Excel文件版本问题

    poi解析Excel文件时有两种格式: HSSFWorkbook格式用来解析Excel2003(xls)的文件 XSSFWorkbook格式用来解析Excel2007(xlsx)的文件 如果用HSSF ...

  2. POI使用:用poi接口不区分xls/xlsx格式解析Excel文档(41种日期格式解析方法,5种公式结果类型解析方法,3种常用数值类型精度控制办法)

    一.使用poi解析excel文档 注:全部采用poi接口进行解析,不需要区分xls.xlsx格式,不需要判断文档类型. poi中的日期格式判断仅支持欧美日期习惯,对国内的日期格式并不支持判断,怎么办? ...

  3. SpringMVC 实现POI读取Excle文件中数据导入数据库(上传)、导出数据库中数据到Excle文件中(下载)

    读取Excale表返回一个集合: package com.shiliu.game.utils; import java.io.File; import java.io.FileInputStream; ...

  4. java读取excel文件(.xls,xlsx,csv)

    前提,maven工程通过poi读写excel文件,需要在pom.xml中配置依赖关系: 在<dependencies>中添加如下代码 <dependency> <grou ...

  5. Jquery的一键上传组件OCUpload及POI解析Excel文件

    第一步:将js文件引入页面 <script type="text/javascript" src="${pageContext.request.contextPat ...

  6. Apache POI解析excel文件

    这里需要用到poi.jar和poi-ooxml.jar  没有的可以去http://mvnrepository.com/下载 import org.apache.poi.POIXMLDocument; ...

  7. java使用jxl,poi解析excel文件

    public interface JavaExcel { /** * 使用jxl写excel文件 */ public void writeJxlExcel(); /** * 使用jxl读excel文件 ...

  8. 关于POI解析Excel文件(03和07版本不同)的问题

    问题描述:在使用poi包进行excel解析时,发现对Excel2003以前(包括2003)的版本没有问题,但读取Excel2007时发生如下异常:org.apache.poi.poifs.filesy ...

  9. java利用poi解析excel文件

    首先需要引入以下jar包 如果使用maven,需要添加两个依赖 <dependencies> <dependency> <groupId>org.apache.po ...

随机推荐

  1. Loadrunner录制脚本之浏览器

    Loadrunner录制脚本之浏览器 用Loadrunner录制脚本,尤其现在的IE浏览器版本升级较快,脚本的录制有时候还是需要集RP.Luck的,当然,Loadrunner对于IE的支持算最好的了, ...

  2. 【转】Eclipse的启动问题【an error has occurred see the log file】

    原文网址:http://coderlin.blog.51cto.com/7386328/1275215 方法1: 今天打开Eclipse的时候出现来了一个问题,导致了Eclipse打不开 错误的提示是 ...

  3. pandas之DateFrame

    float_df = pd.DataFrame((0.45*np.arange(1,9)).reshape(4,2), index=[1,2,3,4], columns=['col_one', 'co ...

  4. JSONUtils的几个常用方法

    1.首先新建1个JSONUtils类 public class JSONUtils { /** * * @author wangwei JSON工具类 * @param * */ /*** * 将Li ...

  5. MOSS 2013研究系列---修改默认Logo

    开发SharePoint2013 的时候,系统里面有一个“SharePoint” 的logo,客户很少不满意,我们的系统不能出现产品的名称,如下图: 咋么修改呢,咨询了广大网友,给出了一个解决方案: ...

  6. python的mp3play库试用

    没有见过比这个更小型的库了,下面程序实现的功能:播放音乐,按空格键实现暂停和播放的切换. #coding=utf-8 import mp3play import pythoncom, pyHook i ...

  7. Java并发-Runnable、Callable、Future、Future Task

    Runnable: Runnable的代码非常简单,他是一个接口,且接口中只有一个方法,run(),创建一个类实现他,把一些费时操作写在其中,然后使用某个线程去执行该Runnable实现类即可实现多线 ...

  8. Spring的常用下载地址

    第一种,简单粗暴直接 1 http://repo.springsource.org/libs-release-local/org/springframework/spring/3.2.4.RELEAS ...

  9. web 服务基础

    用户通过网站访问浏览器都发生了什么 如图,用户请求www.joker.com发生 1. 用户访问网站流程框架2. dns解析原理3. tcp/ip三次握手过程原理4. http协议原理(www服务的请 ...

  10. c++获取lua嵌套table某属性的值

    开发环境:vs2012 lua版本:LuaJIT-2.0.2 lua文件作为配置文件,c++读取这个配置. lua配置结构如下 SceneConfig = { [] = { name =}, [] = ...