Excel有两种后缀名的:

一种是:.xls

二种是:xlsx

下面我们就分别读取一下吧。

先做好准备工作,导入我们需要的jar包

<dependency>  <groupId>org.apache.poi</groupId>  <artifactId>poi</artifactId>  <version>3.16</version>  </dependency> <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.16</version></dependency>

这里我们选用的版本是3.16的。不知道为什么小编使用3.17的会出问题。

HSSFWorkBook:操作2003版本以前的(包括2003版本),扩展名.xls,该类在org.apache.poi:poi中

XSSFWorkBook:操作2007版本以后的(包括2007版本),拓展名.xlsx,该类在org.apache.poi:poi-ooxml中

下面我们看代码来实际操作一下。

package Se_01;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;/*                  实现操作 excel* * * *     HSSFWorkBook:操作2003版本以前的(包括2003版本),扩展名.xls,该类在org.apache.poi:poi中XSSFWorkBook:操作2007版本以后的(包括2007版本),拓展名.xlsx,该类在org.apache.poi:poi-ooxml中SXSSFWorkBook:对于海量的数据进行操作对于不同版本的EXCEL文档要使用不同的工具类,如果使用错了,会提示如下错误信息。org.apache.poi.openxml4j.exceptions.InvalidOperationExceptionorg.apache.poi.poifs.filesystem.OfficeXmlFileException* */
public class DqExcel {public static void main(String[]arge){read();System.out.println("----------下面是 .xlsx---------");read1();}/* 实现读取  excel   .xls  为后缀的* ***/public static void read() {File file = new File("C:\\Users\\Administrator\\Desktop\\poi.xls");if (!file.exists())System.out.println("文件不存在");try {//1.读取Excel的对象POIFSFileSystem poifsFileSystem = new POIFSFileSystem(new FileInputStream(file));//2.Excel工作薄对象HSSFWorkbook hssfWorkbook = new HSSFWorkbook(poifsFileSystem);//3.Excel工作表对象HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);//总行数int rowLength = hssfSheet.getLastRowNum()+1;//4.得到Excel工作表的行HSSFRow hssfRow = hssfSheet.getRow(0);//总列数int colLength = hssfRow.getLastCellNum();//得到Excel指定单元格中的内容HSSFCell hssfCell = hssfRow.getCell(0);//得到单元格样式CellStyle cellStyle = hssfCell.getCellStyle();System.out.println("----------下面是 .xls---------");for (int i = 0; i < rowLength; i++) {//获取Excel工作表的行HSSFRow hssfRow1 = hssfSheet.getRow(i);for (int j = 0; j < colLength; j++) {//获取指定单元格HSSFCell hssfCell1 = hssfRow1.getCell(j);//Excel数据Cell有不同的类型,当我们试图从一个数字类型的Cell读取出一个字符串时就有可能报异常://Cannot get a STRING value from a NUMERIC cell//将所有的需要读的Cell表格设置为String格式if (hssfCell1 != null) {hssfCell1.setCellType(CellType.STRING);}//获取每一列中的值System.out.print(hssfCell1.getStringCellValue()+"\t");}System.out.println();}} catch (IOException e) {e.printStackTrace();}}/****    实现读取    后缀为  .xlsx  的excel*/public static void read1() {File file = new File("C:\\Users\\Administrator\\Desktop\\测试数据.xlsx");  try {  Workbook workbook = new XSSFWorkbook(file);//工作表对象  org.apache.poi.ss.usermodel.Sheet sheet = workbook.getSheetAt(0);  //总行数  int rowLength = sheet.getLastRowNum()+1;  //工作表的列  Row row = sheet.getRow(0);  //总列数  int colLength = row.getLastCellNum();  //得到指定的单元格  Cell cell = row.getCell(0);  //得到单元格样式  CellStyle cellStyle = cell.getCellStyle();  System.out.println("行数:" + rowLength + ",列数:" + colLength);  for (int i = 0; i < rowLength; i++) {  row = sheet.getRow(i);  for (int j = 0; j < colLength; j++) {  cell = row.getCell(j);  //Excel数据Cell有不同的类型,当我们试图从一个数字类型的Cell读取出一个字符串时就有可能报异常:  //Cannot get a STRING value from a NUMERIC cell  //将所有的需要读的Cell表格设置为String格式  if (cell != null)  cell.setCellType(CellType.STRING);  //对Excel进行修改  // if (i > 0 && j == 1)  // cell.setCellValue("1000");  System.out.print(cell.getStringCellValue() + "\t");  }  System.out.println();  }  //将修改好的数据保存
//              OutputStream out = new FileOutputStream(file);
//              workbook.write(out);  } catch (Exception e) {  e.printStackTrace();  }  }}


java 读取Excel相关推荐

  1. 从java读取Excel继续说大道至简 .

    在上一篇博客<从复杂到简单,大道至简>中说道我们要把复杂的问题简单化,也就是要把问题细分,让大问题变成小问题,这样解决起来会相对容易,当我们把容易的小问题解决掉了,大问题自动就会迎刃而解. ...

  2. Flex通过Java读取Excel(详细流程)----Excel在客户端(DataGrid动态根据Excel生成)

    2011-03-06 23:57:00|  分类: flex/flash |  标签:excel  flex  java  客户端  as3xls   |字号大中小  订阅 在网上查了很久的资料,就是 ...

  3. JAVA读取Excel表格,建数据库建表,并生成java实体实例

    转自:https://blog.csdn.net/wuyongde_0922/article/details/43233413 JAVA读取Excel表格,建数据库建表,并生成java实体实例,这一篇 ...

  4. java读取excel表格数据

    1 背景介绍 java读取excel文件有很多的应用场景,如读取数据后入库,或者做数据分析,预处理等等,那么如何做到读取文件呢,下面看具体步骤. 笔者使用环境是IDEA2020.1,jdk8. 2 导 ...

  5. Java读取Excel,03版本和07版本

    文章目录 java读取Excel 读取Excel的计算公式 java读取Excel 采用poi,这里有个知识点,03版本和07版本的Excel是有区别的,03的最多只有65536行,07的无限制 读取 ...

  6. java读取Excel内容添加到list集合里面去

    java读取Excel内容添加到list集合里面去 package com.changan.contract.newsign.utils;import com.changan.contract.xqh ...

  7. java 读取excel模板_java如何读取excel表格的信息,java读取excel模板

    java如何读取excel表格的信息Java如何读取excel表格的信息,用java读取excel表格信息的方法:1.pass [workbook.getworkbook(新文件(' e ://exc ...

  8. Java读取Excel数据:基于Apache POI(一)

    Java读取Excel数据:基于Apache POI(一) Java本身不支持直接读取微软的Excel表格数据.第三方的Apache提供了一个库POI用以支持Java读写Excel表格数据. 首先需要 ...

  9. JAVA读取Excel数据

    JAVA读取Excel数据 下载 jxl.jar 导入jxl.jar 读取程序 写入Excel 写入txt 下载 jxl.jar 找到一个博主发的,下载好后去掉.zip后缀 jxl.jar下载 - 天 ...

  10. Java读取excel指定行列的数据(通过jxl的方式)

    目录 Java读取Excel指定列的数据详细教程和注意事项(通过jxl的方式) 1.前言 2.注意事项 3.主要的API说明 4.示例代码 Java读取Excel指定列的数据详细教程和注意事项(通过j ...

最新文章

  1. apache httpclient 工具类_Java教程分享使用HttpClient抓取页面内容
  2. Flask入门之Jinjia模板的一些语法
  3. Docker 新网络 overlay 网络
  4. Python之调用JS的方式
  5. 如何集成Spring和Struts(实例说明)
  6. Spring基于状态机squirrel-foundation简单使用
  7. 第二十七篇 导航栏和内容块
  8. Windows server 2008 R2搭建主域控制器 + 辅域控制器
  9. 没人可以通过勤劳工作发财致富
  10. poj 1324 Holedox Moving
  11. JS实现new关键字的功能
  12. Windows内核之系统架构
  13. 联合查询(union)——MySQL
  14. esp32 支持 sd卡 micropython 文件系统_ESP32教程:MicroPython支持-esp文件
  15. Google收购Urchin
  16. 辐射强度和辐射亮度_如何在“辐射4”中隐藏“创意俱乐部新闻”垃圾邮件
  17. win10使用markdownpad2报错 An error occurred with the HTML rendering component. This issue may be fixed b
  18. R2S设置openWrt软路由
  19. 软件工程(三)——敏捷开发和理解需求
  20. ShardingSphere实践(1)——ShardingSphere介绍

热门文章

  1. 诺奖得主公司CAR-T细胞疗法临床试验现患者死亡,系今年第6例-1
  2. postman实践与运用
  3. 零中频接收机频率转换图_低成本ADS-B接收机去混合技术
  4. 实现输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
  5. 深度分析Facebook ADS广告投放平台(1):平台介绍
  6. 保险经纪人是什么鬼?
  7. 在知乎发文章基本没流量
  8. 关于原创文章特此说明
  9. 阿里又一员猛将出走江湖?原钉钉CEO“无招”将离职创业,新公司被投资方疯抢!阿里辟谣:人还没走!...
  10. 拉氏变换 传递函数