import java.io.File;
import java.io.IOException;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
/**
* 读取execl文件
*/
public class File_excel { // 测试案例绑定DataProvider后自动循环执行
@Test(dataProvider = "getData")
public void testSearch(String p1, String p2) {
System.out.println(p1 + " " + p2);
} public static Object[][] readData(String dataFile, String sheetName, int beginRowNum, int rowOffset,
int beginColumnNum, int columnOffset) {
return read(dataFile, sheetName, beginRowNum, rowOffset, beginColumnNum, columnOffset);
} // 定义数据驱动
@DataProvider(name = "getData")
public static Object[][] getData() throws IOException {
return readData("H:\\test.xls", "sheet1", 0, 0, 0, 0);
} /**
* @param dataFile
* 文件名
* @param sheetName
* excel中的sheet
* @param beginRowNum
* 开始行
* @param rowOffset
* 行偏移量
* @param beginColumnNum
* 开始列
* @param columnOffset
* 列偏移量
* @return
*/
private static Object[][] read(String dataFile, String sheetName, int beginRowNum, int rowOffset,
int beginColumnNum, int columnOffset) {
File excelFile = new File(dataFile);
Workbook wb = null;
Object[][] data = null;
try {
wb = Workbook.getWorkbook(excelFile);
Sheet sheet = wb.getSheet(sheetName);
if (sheet == null)
return null;
int rows = sheet.getRows();
int cols = sheet.getColumns();
if (rowOffset == 0) {
rowOffset = rows - beginRowNum;
} else if (rows < (beginRowNum + rowOffset)) {
rowOffset = rows - beginRowNum;
}
if (columnOffset == 0) {
columnOffset = cols - beginColumnNum;
} else if (cols < (beginColumnNum + columnOffset)) {
columnOffset = cols - beginColumnNum;
}
data = new Object[rowOffset][columnOffset];
for (int i = beginRowNum; i < beginRowNum + rowOffset; i++) {
for (int j = beginColumnNum; j < beginColumnNum + columnOffset; j++) {
// 获取单元格数据 getCell(col,row);
Cell cell = sheet.getCell(j, i);
if (cell != null) {
String celldata = cell.getContents().trim();
data[i - beginRowNum][j - beginColumnNum] = celldata;
}
}
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return data;
}
}

test.xls文件内容:

  

Java-Excel文件读取的更多相关文章

  1. 接口自动化测试:参数化封装(excel文件读取)

    log4j.properties文件配置 log4j.rootLogger = DEBUG,stdout,F log4j.appender.stdout = org.apache.log4j.Cons ...

  2. 项目总结06:Java Excel文件导入功能HSSFWorkbook(xls)和 XSSFWorkbook (xlsx)

    项目中碰到Excel文件打入数据功能Mark一下 package com.blue.pem.client.util; import java.io.File; import java.io.FileI ...

  3. C#操作Excel文件(读取Excel,写入Excel)

    看到论坛里面不断有人提问关于读取excel和导入excel的相关问题.闲暇时间将我所知道的对excel的操作加以总结,如今共享大家,希望给大家可以给大家带了一定的帮助.另外我们还要注意一些简单的问题1 ...

  4. C#实现从EXCEL文件读取数据到SqlServer数据库

    用第三方组件:NPOI组件实现 先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0或者.net4.0的dll),然后在网站中添加引用.使用 NPOI ...

  5. 如何让excel文件读取变得更简单

    今天给大家安利一款excel文件导入神器,easyexcel,官方地址:(https://github.com/alibaba/easyexcel). 在官网文档中有介绍了其性能. 从上面的性能测试可 ...

  6. 关于Npoi+excel文件读取,修改文件内容的处理方式

    因最近有需求场景,实现对文件的读写操作,又不单独生成新的文件,对于源文件的修改,做了一个简单实现,如下↓ // 要操作的excel文件路径 string fileName = Server.MapPa ...

  7. Vue项目中导入excel文件读取成js数组

    1. 安装组件 cnpm install xlsx --save 2. 代码 <template> <span> <input class="input-fil ...

  8. java属性文件读取,属性修改

    /** * 属性文件读取 * @author bestmata * */ public class CommUtil { private static Logger logger=Logger.get ...

  9. C# WPF 进度条,根据读取数据显示进度条进度,根据Excel文件读取数据,进度条样式

    后台代码: //导入 private void Border_MouseLeftButtonUp_2(object sender, MouseButtonEventArgs e) { var path ...

  10. C# .Net :Excel NPOI导入导出操作教程之将Excel文件读取并写到数据库表,示例分享

    using (FileStream fileReader = File.OpenRead(@"C:\Users\Administrator\Desktop\112.xls"))   ...

随机推荐

  1. C#类、方法的访问修饰符

    这篇文章主要介绍了C#类的访问修饰符用法,较为详细的分析了C#类的访问修饰符概念与用法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文详细分析了C#类的访问修饰符用法,分享给大家供大家参考.具体用 ...

  2. 在linux修改文件夹及其子文件夹的权限。

    加入-R 参数,就可以将读写权限传递给子文件夹例如chmod -R 777 /home/mypackage那么mypackage 文件夹和它下面的所有子文件夹的属性都变成了777.777是读.写.执行 ...

  3. Spring RESTful之@ModelAttribute

    @ModelAttribute有俩个位置,一个是在方法体中,下面这个demo的用意就是每次controller@RequestMapping方法被调用之前都会走这个方法,并向Model中(@Reque ...

  4. The SDK platform-tools version ((21)) is too old to check APIs compiled with API 23

    android studio是个坑爹的工具,每次打开文件头都出现如上错误提示. 解决方法: Update your android sdk platform-tools to the revision ...

  5. 3.JMeter添加集合点

    1.JMeter的集合点是通过添加定时器来完成的,在做性能测试时,真正的并发是不可能的,为了更真实的模拟并发场景,因此在需要压测的地方设置集合点,即可一起操作发送请求. 2.JMeter添加定时器,右 ...

  6. bc显示小数点前的0

    bc是强大而常用的计算工具.不过在除法运算时,如果得到的结果值小于1,得到的小数前面的0不存.本篇提供几个常用小数点前缺0的解决方法. [root@maqing ~]# bc bc Copyright ...

  7. SharedPreference工具类

    public class SPUtils { /** * 保存在手机里的SP文件名 */ public static final String FILE_NAME = "my_sp" ...

  8. springboot+idea 热部署

    1 配置pom.xml <!--spring-boot-devtools 热部署--> <dependency> <groupId>org.springframew ...

  9. 在不适用fixed的前提下,当内容较少时footer固定在页面底部

    使用css,参考国外的一个解决方法: http://ryanfait.com/resources/footer-stick-to-bottom-of-page/ How to use the CSS ...

  10. 实现Runnable接口和继承Thread类

    如果欲创建的线程类已经有一个父类了,就不能再继承Thread类了,java不支持多继承.  实现Runnable接口: package multyThread; public class MyRuna ...