关于java读取excle文件的相关方法 ;
1.读取Excle文件内容的方法 拿过来可以直接用 ;
2.参照 http://www.anyrt.com/blog/list/importexcel.html#6
更多知识请参考:http://www.anyrt.com/blog/index.html
说明:本次中使用的jra包有:POI3.9
- package Demo;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.util.List;
- import org.apache.poi.hssf.usermodel.HSSFPicture;
- import org.apache.poi.hssf.usermodel.HSSFPictureData;
- import org.apache.poi.hssf.usermodel.HSSFShape;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.ss.usermodel.Cell;
- import org.apache.poi.ss.usermodel.DateUtil;
- import org.apache.poi.ss.usermodel.Row;
- import org.apache.poi.xssf.usermodel.XSSFSheet;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- public class ExcleXlsxDemo {
- /**
- *
- *
- */
- public void xlsxTypeExcle(String filePath) {
- // File excelFile = new File("/Users/mike/table.xlsx");
- File excelFile = new File(filePath);
- XSSFWorkbook wb;
- try {
- wb = new XSSFWorkbook(new FileInputStream(excelFile));
- XSSFSheet sheet = wb.getSheetAt(0);
- for (Row row : sheet) {
- for (Cell cell : row) {
- switch (cell.getCellType()) {
- case Cell.CELL_TYPE_STRING:
- System.out.print(cell.getRichStringCellValue().getString());
- System.out.print("|");
- break;
- case Cell.CELL_TYPE_NUMERIC:
- if (DateUtil.isCellDateFormatted(cell)) {
- System.out.print(String.valueOf(cell.getDateCellValue()));
- } else {
- System.out.print(cell.getNumericCellValue());
- }
- System.out.print("|");
- break;
- case Cell.CELL_TYPE_BOOLEAN:
- System.out.print(cell.getBooleanCellValue());
- System.out.print("|");
- break;
- default:
- }
- }
- System.out.println();
- }
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- /**
- *
- * 读取xls格式的excle
- *
- * @param args
- * @throws IOException
- * @throws FileNotFoundException
- * @throws Exception
- */
- @SuppressWarnings("deprecation")
- public void xlsTypeExcle(String filePath) throws FileNotFoundException, IOException {
- // File excelFile = new File("/Users/mike/table5.xls");
- File xlsExcelFile = new File(filePath);
- HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(xlsExcelFile));
- HSSFSheet sheet = wb.getSheetAt(0);
- System.out.println("***************"+filePath+" 的内容如下:");
- for (Row row : sheet) {
- for (Cell cell : row) {
- switch (cell.getCellType()) {
- case Cell.CELL_TYPE_STRING:
- System.out.print(cell.getRichStringCellValue().getString());
- System.out.print("|");
- break;
- case Cell.CELL_TYPE_NUMERIC:
- if (DateUtil.isCellDateFormatted(cell)) {
- System.out.print(String.valueOf(cell.getDateCellValue()));
- } else {
- System.out.print(cell.getNumericCellValue());
- }
- System.out.print("|");
- break;
- case Cell.CELL_TYPE_BOOLEAN:
- System.out.print(cell.getBooleanCellValue());
- System.out.print("|");
- break;
- default:
- }
- }
- System.out.println();
- }
- }
- public static void main(String[] args) {
- ExcleXlsxDemo xlsx =new ExcleXlsxDemo();
- String xlsx_Excle ="D:\\2007Text.xlsx";
- String xls_excle="D:\\2003table5.xls";
- try {
- xlsx.xlsTypeExcle(xls_excle);
- xlsx.xlsxTypeExcle(xlsx_Excle);
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
Java POI读取excel 支持xls、xlsx
报表存在读取数据源来自excel,系统常常出现读取excel需求,Java POI不仅可以输出excel,也可以读取excel中单元格数据、图片数据,poi也支持excel2007(xlsx)读取,使用poi-3.8-20120326.jar,poi-ooxml-3.8-20120326.jar,poi-scratchpad-3.8-20120326.jar,这些Jar包可以从apache poi获取
关于2003-2007版本Excle单元格读取
- File excelFile = new File("/Users/mike/table5.xls");
- HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(excelFile));
- HSSFSheet sheet = wb.getSheetAt(0);
- for (Row row : sheet) {
- for (Cell cell : row) {
- switch (cell.getCellType()) {
- case Cell.CELL_TYPE_STRING://字符串
- System.out.print(cell.getRichStringCellValue().getString());
- System.out.print("|");
- break;
- case Cell.CELL_TYPE_NUMERIC://数值与日期
- if (DateUtil.isCellDateFormatted(cell)) {
- System.out.print(String.valueOf(cell.getDateCellValue()));
- } else {
- System.out.print(cell.getNumericCellValue());
- }
- System.out.print("|");
- break;
- case Cell.CELL_TYPE_BOOLEAN://boolean类型
- System.out.print(cell.getBooleanCellValue());
- System.out.print("|");
- break;
- default:
- }
- }
- System.out.println();
图片读取
先获取excel所有的图片,再查询pictureIndex 根据pictureIndex获取对应的图片
- //读取图片
- List<HSSFPictureData> pictures = wb.getAllPictures();
- for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {
- if (shape instanceof HSSFPicture) {
- HSSFPicture pic = (HSSFPicture) shape;
- int pictureIndex = pic.getPictureIndex()-1;
- HSSFPictureData picData = pictures.get(pictureIndex);
- System.out.println("image-size:" + picData.getData().length);
- }
- }
读取sheet名称
- wb.getSheetName(0)
整个实例
- import java.io.File;
- import java.io.FileInputStream;
- import java.util.List;
- import org.apache.poi.hssf.usermodel.HSSFPicture;
- import org.apache.poi.hssf.usermodel.HSSFPictureData;
- import org.apache.poi.hssf.usermodel.HSSFShape;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.ss.usermodel.Cell;
- import org.apache.poi.ss.usermodel.DateUtil;
- import org.apache.poi.ss.usermodel.Row;
- public final class TestImportExcel {
- public static void main(String[] args) throws Exception {
- File excelFile = new File("/Users/mike/table5.xls");
- HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(excelFile));
- HSSFSheet sheet = wb.getSheetAt(0);
- for (Row row : sheet) {
- for (Cell cell : row) {
- switch (cell.getCellType()) {
- case Cell.CELL_TYPE_STRING:
- System.out.print(cell.getRichStringCellValue().getString());
- System.out.print("|");
- break;
- case Cell.CELL_TYPE_NUMERIC:
- if (DateUtil.isCellDateFormatted(cell)) {
- System.out.print(String.valueOf(cell.getDateCellValue()));
- } else {
- System.out.print(cell.getNumericCellValue());
- }
- System.out.print("|");
- break;
- case Cell.CELL_TYPE_BOOLEAN:
- System.out.print(cell.getBooleanCellValue());
- System.out.print("|");
- break;
- default:
- }
- }
- System.out.println();
- }
- //读取图片
- List<HSSFPictureData> pictures = wb.getAllPictures();
- for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {
- if (shape instanceof HSSFPicture) {
- HSSFPicture pic = (HSSFPicture) shape;
- int pictureIndex = pic.getPictureIndex()-1;
- HSSFPictureData picData = pictures.get(pictureIndex);
- System.out.println("image-size:" + picData.getData().length);
- }
- }
- System.out.println(wb.getSheetName(0));
- }
- }
xlsx读取单元格
xlsx读取大概与xls读取相类似,xlsx采用是X开头的类,采用的是XSSFWorkbook ;
- File excelFile = new File("/Users/mike/table.xlsx");
- XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(excelFile));
- XSSFSheet sheet = wb.getSheetAt(0);
- for (Row row : sheet) {
- for (Cell cell : row) {
- switch (cell.getCellType()) {
- case Cell.CELL_TYPE_STRING:
- System.out.print(cell.getRichStringCellValue().getString());
- System.out.print("|");
- break;
- case Cell.CELL_TYPE_NUMERIC:
- if (DateUtil.isCellDateFormatted(cell)) {
- System.out.print(String.valueOf(cell.getDateCellValue()));
- } else {
- System.out.print(cell.getNumericCellValue());
- }
- System.out.print("|");
- break;
- case Cell.CELL_TYPE_BOOLEAN:
- System.out.print(cell.getBooleanCellValue());
- System.out.print("|");
- break;
- default:
- }
- }
- System.out.println();
- }
xlsx读取图片
xlsx读取图片直接获取所有的图片,然后遍历图片获取图片数据
- //读取图片
- List<XSSFPictureData> pictures = wb.getAllPictures();
- for (int i = 0; i < pictures.size(); i++) {
- XSSFPictureData pictureData = pictures.get(i);
- byte[] picData = pictureData.getData();
- System.out.println("image-size:" + picData.length);
- }
xlsx示例
- import java.io.File;
- import java.io.FileInputStream;
- import java.util.List;
- import org.apache.poi.ss.usermodel.Cell;
- import org.apache.poi.ss.usermodel.DateUtil;
- import org.apache.poi.ss.usermodel.Row;
- import org.apache.poi.xssf.usermodel.XSSFPictureData;
- import org.apache.poi.xssf.usermodel.XSSFSheet;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- public final class TestImportXlsx {
- public static void main(String[] args) throws Exception {
- File excelFile = new File("/Users/mike/table.xlsx");
- XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(excelFile));
- XSSFSheet sheet = wb.getSheetAt(0);
- for (Row row : sheet) {
- for (Cell cell : row) {
- switch (cell.getCellType()) {
- case Cell.CELL_TYPE_STRING:
- System.out.print(cell.getRichStringCellValue().getString());
- System.out.print("|");
- break;
- case Cell.CELL_TYPE_NUMERIC:
- if (DateUtil.isCellDateFormatted(cell)) {
- System.out.print(String.valueOf(cell.getDateCellValue()));
- } else {
- System.out.print(cell.getNumericCellValue());
- }
- System.out.print("|");
- break;
- case Cell.CELL_TYPE_BOOLEAN:
- System.out.print(cell.getBooleanCellValue());
- System.out.print("|");
- break;
- default:
- }
- }
- System.out.println();
- }
- //读取图片
- List<XSSFPictureData> pictures = wb.getAllPictures();
- for (int i = 0; i < pictures.size(); i++) {
- XSSFPictureData pictureData = pictures.get(i);
- byte[] picData = pictureData.getData();
- System.out.println("image-size:" + picData.length);
- }
- System.out.println(wb.getSheetName(0));
- }
- }
关于java读取excle文件的相关方法 ;的更多相关文章
- 通过java读取excle数据的方法,今天用到了留下来供以后参考使用
近期项目属于一个棋牌类项目 用到的配置表比较多 所以在这里 贴一下代码,留下来可以参考.也希望对有需要的朋友有所帮助哦 >1.需求将一个excle表格中的数据 读取 然后封装成自定义的对象,本项 ...
- 关于解决java读取excel文件遇空行抛空指针的问题 !
关于解决java读取excel文件遇空行抛空指针的问题 ! package exceRead; import java.io.File; import java.io.FileInputStream; ...
- java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)
java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...
- Java读取Excel文件的几种方法
Java读取 Excel 文件的常用开源免费方法有以下几种: 1. JDBC-ODBC Excel Driver 2. jxl.jar 3. jcom.jar 4. poi.jar 简单介绍: 百度文 ...
- Java读取txt文件
package com.loongtao.general.crawler.slave.utils; import java.io.BufferedReader; import java.io.File ...
- java 读取XML文件作为配置文件
首先,贴上自己的实例: XML文件:NewFile.xml(该文件与src目录同级) <?xml version="1.0" encoding="UTF-8&quo ...
- java 读取TXT文件的方法
java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...
- 用java读取properties文件--转
今天为了通过java读取properties文件,google了很长时间,终于找到了.现在特记录之和大家一起分享. 下面直接贴出代码:java类 public class Mytest pub ...
- java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .
背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...
随机推荐
- Leecode刷题之旅-C语言/python-342 4的幂
这里不列举普通的方法了. 发现一个好帖: 学习一下: https://blog.csdn.net/butterfly5211314/article/details/86099993 --------- ...
- hadoop伪分布式组件安装
一.版本建议 Centos V7.5 Java V1.8 Hadoop V2.7.6 Hive V2.3.3 Mysql V5.7 Spark V2.3 Scala V2.12.6 Flume V1. ...
- MySql访客连接设置
步骤: 1 . 打开命令窗口,切换到mysql安装目录 可以在控制台目录切换,也可以打开所在安装目录后再打开控制台 2 . 执行命令:mysql -u root -p 3 . 无法访问的话,查看防火墙 ...
- C#课后小作业
有关C#基础的练手 跟大家一起分享下 1.让用户输入一个100以内的数 打印1-100之间所有的数,用户输入的数除外 2.让用户输入一个100以内的数 打印1-这个数之间所有的数的和 3.使用一个fo ...
- 我们一起学习WCF 第三篇头消息验证用户身份
前言:今天我主要写的是关于头消息的一个用处验证用户信息 下面我画一个图,可以先看图 第一步:我们先开始做用户请求代码 首先:创建一个可执行的上下文对象块并定义内部传输的通道 using (Operat ...
- python接口自动化1-发送get请求 前言
前言 requests模块,也就是老污龟,为啥叫它老污龟呢,因为这个官网上的logo就是这只污龟,接下来就是学习它了. 一.环境安装 1.用pip安装requests模块 >>pip in ...
- 《C++设计新思维》Command设计模式读后感
原文内容提领: 本书第5章标题为泛化仿函数,我认为本章真正讲述的内容可以总结出一句话! 如何利用C++老标准实现C++11新标准类似std::function提供的功能. std::function简 ...
- 数据库sql优化总结之2-百万级数据库优化方案+案例分析
项目背景 有三张百万级数据表 知识点表(ex_subject_point)9,316条数据 试题表(ex_question_junior)2,159,519条数据 有45个字段 知识点试题关系表(ex ...
- Angular7运行机制--根据腾讯课堂米斯特吴 《Angular4从入门到实战》学习笔记分析完成
- redis 批量删除操作
redis 批量删除操作 需要在redis里面清空一批数据,redis没有支持通配符删除, 只有del key1 key2 ... 但是可以通配符获取 KEYS PATTERN 然后利用linux管道 ...