測(cè)試驅(qū)動(dòng)技術(shù)系列之如何理解操控excel的核心api

這篇文章主要講解了“測(cè)試驅(qū)動(dòng)技術(shù)系列之如何理解操控excel的核心api”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“測(cè)試驅(qū)動(dòng)技術(shù)系列之如何理解操控excel的核心api”吧!

為長(zhǎng)嶺等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及長(zhǎng)嶺網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、長(zhǎng)嶺網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

測(cè)試數(shù)據(jù)格式展示如下(junit4也類似):

@DataProvider  public Object[][] dp1() {  return new Object[][] {  new Object[] { 1, 1,0 },  new Object[] { 2, 1,1 },  new Object[] { 2, 1,2 },  };  }

大家可以看到,如果數(shù)據(jù)量不大的時(shí)候,這種形式是OK的,但是如果測(cè)試數(shù)據(jù)量很大,那么在代碼中維護(hù)測(cè)試數(shù)據(jù)顯然效率就不高了!在做數(shù)據(jù)驅(qū)動(dòng)的工作中,通常把測(cè)試數(shù)據(jù)保存在excel中,然后再對(duì)excel進(jìn)行讀寫(xiě)相關(guān)操作。在這里以java為例,我?guī)Т蠹沂煜ひ幌聀oi-ooxml  jar包的使用,給大家講解一下這個(gè)jar包操控excel的核心api。

poi-ooxml jar介紹

jar包導(dǎo)入

Maven中的pom配置信息如下

<dependency>  <groupId>org.apache.poi</groupId>  <artifactId>poi-ooxml</artifactId>  <version>4.1.2</version>  </dependency>

首先介紹幾個(gè)概念,整個(gè)excel文件被稱作workbook、每個(gè)工作表被稱作Sheet,每個(gè)單元格被稱作cell

測(cè)試驅(qū)動(dòng)技術(shù)系列之如何理解操控excel的核心api

api詳解

打開(kāi)xlsx格式文檔

XSSFWorkbookworkbook = new XSSFWorkbook(new FileInputStream("E:\\test.xlsx"));

打開(kāi)xls格式文檔

HSSFWorkbookworkbook = new HSSFWorkbook(newFileInputStream("E:\\test.xls"));

關(guān)閉文檔

workbook.close();

通過(guò)id獲取工作表,0表示第一個(gè)工作表

Sheet sheet =workbook.getSheetAt(0);

通過(guò)工作表名稱獲取工作表

Sheet sheet =workbook.getSheet("test1");

創(chuàng)建sheet,名命為test2

workbook.createSheet("test2");

創(chuàng)建sheet,名命為test3,并把第一個(gè)sheet中的值拷貝過(guò)去

workbook.cloneSheet(0,"test3");

獲取sheet中的有效數(shù)據(jù)行數(shù)

int iRowNum=sheet.getPhysicalNumberOfRows();

獲取sheet中的有效數(shù)據(jù)列數(shù)

int iColumnNum=sheet.getRow(0).getPhysicalNumberOfCells();

獲取第一列第一行的數(shù)據(jù)類型

CellTypetype=sheet.getRow(1).getCell(0).getCellType();

Cell的數(shù)據(jù)類型包括:

  • NUMERIC,數(shù)值型

  • STRING,字符串型

  • FORMULA,公式型

  • BLANK,空值

  • BOOLEAN,布爾型

  • ERROR,錯(cuò)誤

獲取第一列第一行的數(shù)據(jù)值

String value=sheet.getRow(1).getCell(0).getStringCellValue();

把第一列第一行的數(shù)據(jù)設(shè)置為kevin1

sheet.getRow(1).getCell(0).setCellValue("kevin1");

注意:如果涉及到對(duì)excel的寫(xiě)入操作或者創(chuàng)建sheet表格的操作,例如:

workbook.createSheet("test2");  workbook.cloneSheet(0,"test3");  sheet.getRow(1).getCell(0).setCellValue("kevin1");

必須添加下面三條語(yǔ)句

FileOutputStreamis = new FileOutputStream("E:\\test.xls");  workbook.write(is);  is.close();

完整代碼

import java.io.FileInputStream;  import java.io.FileNotFoundException;  import java.io.FileOutputStream;  import java.io.IOException;  import org.apache.poi.hssf.usermodel.HSSFWorkbook;  import org.apache.poi.ss.usermodel.CellType;  import org.apache.poi.ss.usermodel.Sheet;  import org.apache.poi.xssf.usermodel.XSSFWorkbook;  public class ExcelBaseDemo {      public static void main(String[] args) throws FileNotFoundException, IOException {           //XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream("E:\\test.xlsx")); //打開(kāi)xlsx格式           HSSFWorkbookworkbook = new HSSFWorkbook(new FileInputStream("E:\\test.xls"));//打開(kāi)xls格式           // 獲取工作表           //Sheet sheet = workbook.getSheetAt(0);           Sheetsheet = workbook.getSheet("test1");          // workbook.createSheet("test2");         //創(chuàng)建sheet,名命為test2          // workbook.cloneSheet(0, "test3");         //創(chuàng)建sheet,名命為test3,并把第一個(gè)sheet中的值拷貝過(guò)去           int iRowNum=sheet.getPhysicalNumberOfRows();  //獲取sheet中的有效數(shù)據(jù)行數(shù)           int iColumnNum= sheet.getRow(0).getPhysicalNumberOfCells();//獲取sheet中的有效數(shù)據(jù)列數(shù)           System.out.println(iRowNum);           System.out.println(iColumnNum);           CellTypetype=sheet.getRow(1).getCell(0).getCellType(); //獲取第一列第一行的數(shù)據(jù)類型           System.out.println(type);           Stringvalue= sheet.getRow(1).getCell(0).getStringCellValue();  //獲取第一列第一行的數(shù)據(jù)值           System.out.println(value);           sheet.getRow(1).getCell(0).setCellValue("kevin1");  //把第一列第一行的數(shù)據(jù)設(shè)置為kevin1          //如果涉及到對(duì)excel的寫(xiě)入操作或者創(chuàng)建sheet表格的操作,必須添加下面三條語(yǔ)句           FileOutputStreamis = new FileOutputStream("E:\\test.xls");             workbook.write(is);             is.close();             workbook.close();      }  }

感謝各位的閱讀,以上就是“測(cè)試驅(qū)動(dòng)技術(shù)系列之如何理解操控excel的核心api”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)測(cè)試驅(qū)動(dòng)技術(shù)系列之如何理解操控excel的核心api這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)頁(yè)題目:測(cè)試驅(qū)動(dòng)技術(shù)系列之如何理解操控excel的核心api
轉(zhuǎn)載注明:http://bm7419.com/article46/phojeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、、微信小程序、面包屑導(dǎo)航標(biāo)簽優(yōu)化、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)