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. STMM32 ‘&’ 操作

    if(0x04 == (new_cfg&0x04)){ sys_cfg_msg.pps_cfg = ; cn_save_data[cn_save_index_stp].hash= ; sys_ ...

  2. linux通过wget直接下载jdk,避免用户验证

    下载地址 :http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 下载语句: wget ...

  3. FOR XML PATH 灵活运用

    FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...

  4. angular的require模块的使用($requireProvider的作用)

      今天我们学习一下angular的另一个几乎被忽略的模块angular-require 先给出链接地址(git:)   https://github.com/Treri/angular-requir ...

  5. Python学习问题记录

    1.在windows的cmd中使用open方法打开文件时,报如下错误: (unicode error) 'unicodeescape' codec can't decode bytes in posi ...

  6. Windows运行命令集锦

    开始菜单中的“运行”(Win+R)是通向程序的快捷途径,输入特定的命令后,即可快速的打开Windows的大部分程序,熟练的运用它,将给我们的操作带来诸多便捷. winver 检查Windows版本  ...

  7. VS2017更新后无法使用stdlib.h

    这几天用VS写代码,每次打开工程就卡死,在网上找不到解决方法,于是想更新下vs碰碰运气. 更新后,打开速度恢复往日那般,但是代码中,提示我找不到 stdlib.h. 于是在电脑中,搜寻stdlib.h ...

  8. 应用程序 system 函数

    1.使用实例 system("ps"); //执行shell命令ps 2.使用注意事项 system相当于创建了一个子进程,在子进程中调用程序.所以system执行的程序会继承主进 ...

  9. C# 中的委托和事件(2)

    委托.事件与Observer设计模式范例说明 上面的例子已不足以再进行下面的讲解了,我们来看一个新的范例,因为之前已经介绍了很多的内容,所以本节的进度会稍微快一些: 假设我们有个高档的热水器,我们给它 ...

  10. AndroidUI 控件命名格式

    TextView ->txt EditText->edit Button ->btn