java 读取Excel
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相关推荐
- 从java读取Excel继续说大道至简 .
在上一篇博客<从复杂到简单,大道至简>中说道我们要把复杂的问题简单化,也就是要把问题细分,让大问题变成小问题,这样解决起来会相对容易,当我们把容易的小问题解决掉了,大问题自动就会迎刃而解. ...
- Flex通过Java读取Excel(详细流程)----Excel在客户端(DataGrid动态根据Excel生成)
2011-03-06 23:57:00| 分类: flex/flash | 标签:excel flex java 客户端 as3xls |字号大中小 订阅 在网上查了很久的资料,就是 ...
- JAVA读取Excel表格,建数据库建表,并生成java实体实例
转自:https://blog.csdn.net/wuyongde_0922/article/details/43233413 JAVA读取Excel表格,建数据库建表,并生成java实体实例,这一篇 ...
- java读取excel表格数据
1 背景介绍 java读取excel文件有很多的应用场景,如读取数据后入库,或者做数据分析,预处理等等,那么如何做到读取文件呢,下面看具体步骤. 笔者使用环境是IDEA2020.1,jdk8. 2 导 ...
- Java读取Excel,03版本和07版本
文章目录 java读取Excel 读取Excel的计算公式 java读取Excel 采用poi,这里有个知识点,03版本和07版本的Excel是有区别的,03的最多只有65536行,07的无限制 读取 ...
- java读取Excel内容添加到list集合里面去
java读取Excel内容添加到list集合里面去 package com.changan.contract.newsign.utils;import com.changan.contract.xqh ...
- java 读取excel模板_java如何读取excel表格的信息,java读取excel模板
java如何读取excel表格的信息Java如何读取excel表格的信息,用java读取excel表格信息的方法:1.pass [workbook.getworkbook(新文件(' e ://exc ...
- Java读取Excel数据:基于Apache POI(一)
Java读取Excel数据:基于Apache POI(一) Java本身不支持直接读取微软的Excel表格数据.第三方的Apache提供了一个库POI用以支持Java读写Excel表格数据. 首先需要 ...
- JAVA读取Excel数据
JAVA读取Excel数据 下载 jxl.jar 导入jxl.jar 读取程序 写入Excel 写入txt 下载 jxl.jar 找到一个博主发的,下载好后去掉.zip后缀 jxl.jar下载 - 天 ...
- Java读取excel指定行列的数据(通过jxl的方式)
目录 Java读取Excel指定列的数据详细教程和注意事项(通过jxl的方式) 1.前言 2.注意事项 3.主要的API说明 4.示例代码 Java读取Excel指定列的数据详细教程和注意事项(通过j ...
最新文章
- apache httpclient 工具类_Java教程分享使用HttpClient抓取页面内容
- Flask入门之Jinjia模板的一些语法
- Docker 新网络 overlay 网络
- Python之调用JS的方式
- 如何集成Spring和Struts(实例说明)
- Spring基于状态机squirrel-foundation简单使用
- 第二十七篇 导航栏和内容块
- Windows server 2008 R2搭建主域控制器 + 辅域控制器
- 没人可以通过勤劳工作发财致富
- poj 1324 Holedox Moving
- JS实现new关键字的功能
- Windows内核之系统架构
- 联合查询(union)——MySQL
- esp32 支持 sd卡 micropython 文件系统_ESP32教程:MicroPython支持-esp文件
- Google收购Urchin
- 辐射强度和辐射亮度_如何在“辐射4”中隐藏“创意俱乐部新闻”垃圾邮件
- win10使用markdownpad2报错 An error occurred with the HTML rendering component. This issue may be fixed b
- R2S设置openWrt软路由
- 软件工程(三)——敏捷开发和理解需求
- ShardingSphere实践(1)——ShardingSphere介绍