java读取Excle代码 拿来可以直接使用 :针对xls 和 xlsx

package dataProvider;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
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 DP_Demo { public static Object[][] getTestData(String filePath) throws FileNotFoundException, IOException {
File excelFile = new File(filePath);
/*
* 判断给定文件的类型; 1.如果是xls的问价那类型就创建XSSFWorkBook ;
* 2.如果是xlsx的文件类型就创建HSSFWorkBook ;
*/ String xls = filePath.substring(filePath.indexOf('.'));
System.out.println("传入文件的后缀是:" + xls + " ;");
if (xls.equals(".xls")) {
HSSFWorkbook xlswb = new HSSFWorkbook(new FileInputStream(excelFile));
HSSFSheet sheet = xlswb.getSheetAt(0);
int rowcount = sheet.getLastRowNum() - sheet.getFirstRowNum();
List<Object[]> list = new ArrayList<Object[]>();
// System.out.println("---------该sheet总共有 :" + rowcount + " ;");
Row row;
Cell cell;
for (int i = 0; i < rowcount + 1; i++) {
row = sheet.getRow(i);
if(row.getCell(i)==null){
continue ;
}else{ }
Object[] obj = new Object[row.getLastCellNum()]; /*
* System.out.println("当前行是:" + (row.getRowNum() + 1) +
* " ;当前行的第一个单元格是:" + row.getFirstCellNum() + " ; 当前前的最后一个单元格是:"
* + row.getLastCellNum() + "; ");
*/
// System.out.println("obj 数组的长度是 :" + obj.length + " ;");
for (int j = 0; j < row.getLastCellNum(); j++) {
cell = row.getCell(j);
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
obj[j] = cell.getRichStringCellValue().getString();
/*
* System.out.print(cell.getRichStringCellValue().
* getString()); System.out.print("|");
*/ break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
obj[j] = cell.getDateCellValue();
// System.out.print(String.valueOf(cell.getDateCellValue()));
} else {
obj[j] = cell.getNumericCellValue();
// System.out.print(cell.getNumericCellValue());
}
// System.out.print("|");
break;
case Cell.CELL_TYPE_BOOLEAN:
obj[j] = cell.getBooleanCellValue();
/*
* System.out.print(cell.getBooleanCellValue());
* System.out.print("|");
*/ break;
default:
} }
list.add(obj);
// System.out.println();
}
// System.out.println("list.size()===" + list.size());
Object[][] object = new Object[list.size()][];
for (int i = 0; i < object.length; i++) {
object[i] = list.get(i);
}
return object; } else if (xls.equals(".xlsx")) {
XSSFWorkbook wbxlsx = new XSSFWorkbook(new FileInputStream(excelFile));
XSSFSheet sheet = wbxlsx.getSheetAt(0); int rowcount = sheet.getLastRowNum() - sheet.getFirstRowNum();
List<Object[]> list = new ArrayList<Object[]>();
// System.out.println("---------该sheet总共有 :" + rowcount + " ;");
Row row;
Cell cell;
for (int i = 0; i < rowcount + 1; i++) {
row = sheet.getRow(i);
/*
* System.out.println("当前行是:" + (row.getRowNum() + 1) +
* " ;当前行的第一个单元格是:" + row.getFirstCellNum() + " ; 当前前的最后一个单元格是:"
* + row.getLastCellNum() + "; ");
*/
Object[] obj = new Object[row.getLastCellNum()];
// System.out.println("obj 数组的长度是 :" + obj.length + " ;");
for (int j = 0; j < row.getLastCellNum(); j++) {
cell = row.getCell(j);
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
obj[j] = cell.getRichStringCellValue().getString();
/*
* System.out.print(cell.getRichStringCellValue().
* getString()); System.out.print("|");
*/
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
obj[j] = cell.getDateCellValue();
// System.out.print(String.valueOf(cell.getDateCellValue()));
} else {
obj[j] = cell.getNumericCellValue();
// System.out.print(cell.getNumericCellValue());
}
// System.out.print("|");
break;
case Cell.CELL_TYPE_BOOLEAN:
obj[j] = cell.getBooleanCellValue();
/*
* System.out.print(cell.getBooleanCellValue());
* System.out.print("|");
*/
break;
default:
} }
list.add(obj);
System.out.println();
}
// System.out.println("list.size()===" + list.size());
Object[][] object = new Object[list.size()][];
for (int i = 0; i < object.length; i++) {
object[i] = list.get(i);
}
return object;
} else {
System.out.println("指定的文件不是excle文件!");
}
return null;
} public static void main(String[] args) throws FileNotFoundException, IOException {
// String filePathxls = "D:\\2003table15.xls";
String filePathxlsx = "D:\\2007Text.xlsx";
// Object [][] objxls =DP_Demo.getTestData(filePathxls);
Object[][] objxlsx = DP_Demo.getTestData(filePathxlsx);
/*
* for (int i = 0; i < objxlsx.length; i++) {
* System.out.println(objxlsx[i]); }
*/ Object[] obj1 = objxlsx[0];
for (int i = 0; i < obj1.length; i++) {
System.out.print("[" + obj1[i] + "] ");
} } }

java读取xls和xlsx数据作为数据驱动来用的更多相关文章

  1. 用NPOI实现导入导出csv、xls、xlsx数据功能

    用NPOI实现导入导出csv.xls.xlsx数据功能   直接上代码 首先定义一个接口   如果需要直接操作文件的话,就自己在封装一次 然后定义csv类的具体实现 这个需要引入命名空间LumenWo ...

  2. java读取请求中body数据

    java读取请求中body数据 /** * 获取request中body数据 * * @author lifq * * 2017年2月24日 下午2:29:06 * @throws IOExcepti ...

  3. POI操作Excel详解,读取xls和xlsx格式的文件

    package org.ian.webutil;   import java.io.File; import java.io.FileInputStream; import java.io.FileN ...

  4. 使用poi或jxl,通过java读写xls、xlsx文档

    package nicetime.com.baseutil; import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffExcepti ...

  5. Python中如何读取xls中的数据

    要想读取EXCEL中的数据,首先得下载xlrd包,地址:https://pypi.python.org/pypi/xlrd  安装方法:下载解压后,利用windows  dos命令进入解压目录eg,c ...

  6. JAVA 读取xml格式的数据

    <?xml version="1.0" encoding="UTF-8"?> <column-enums> <type name= ...

  7. 【转】Java读取matlab的.mat数据文件

    参考:Java读取mat文件 下载链接:ujmp  jmatio 下载完两个.jar文件之后,如何引用到java项目当中?项目名称->右键->Property->Java Build ...

  8. java 读取Excel文件并数据持久化方法Demo

    import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util ...

  9. POI读取xls和xlsx

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import  ...

随机推荐

  1. 开篇~试试word写博客

    word发布博客设置,mark一下 原帖地址:http://www.cnblogs.com/liuxianan/archive/2013/04/13/3018732.html word代码高亮插件:h ...

  2. python2.7入门---XML解析

        首先我们先来考虑,什么是XML?XML 指可扩展标记语言(eXtensible Markup Language).XML 被设计用来传输和存储数据.XML是一套定义语义标记的规则,这些标记将文 ...

  3. 20155206 《Java程序设计》实验三实验报告

    20155206 <Java程序设计>实验三实验报告 实验内容 Java敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 提交一: 提交二: 提交三: 提交四:

  4. 20155331 ch02 课下作业

    2.96 遵循位级浮点编码规则,实现具有如下原型的函数: /* *Compute (int)f. *If conversion cause overflow or f is NaN, return 0 ...

  5. WPF 带刻度的滑动条实现

    原文:WPF 带刻度的滑动条实现 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/BYH371256/article/details/83507170 ...

  6. jQuery Validate (登录页面相关验证)

    $(function() { var submit = false; var superHtml = []; /** * 匹配企业帐号,以字母开头,长度在6-20之间,只能包含字符.数字和下划线. * ...

  7. 我们一起学习WCF 第九篇聊天功能

    说到聊天,那么其实就是传输数据,把自己写的东西传给自己想发送的那么人.我总结一下传输常见的有三种方式 1:就是我们常见的数据库传输 2:就是文件(流)传输 3:就是socket传输 今天我们说的wcf ...

  8. 求两个字符串的最长公共子串——Java实现

    要求:求两个字符串的最长公共子串,如“abcdefg”和“adefgwgeweg”的最长公共子串为“defg”(子串必须是连续的) public class Main03{ // 求解两个字符号的最长 ...

  9. EOJ3134. 短信激活码(大数幂取模)

    题面 输入只有5位,所以转化为long long类型用快速幂取模 前面补0的写法printf("%05lld\n",ans);如果ans不足5位会在前面补0 #include< ...

  10. JMeter学习笔记(一) 工具的安装和基本介绍

    因为网上的资料比较多,就不多描述了,在此引用了其他大神的文档,用于学习 这个文档中有比较详细的jmeter工具介绍: https://wenku.baidu.com/view/64f3a5f75901 ...