這篇文章主要講解了“測試驅(qū)動技術系列之如何理解操控excel的核心api”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“測試驅(qū)動技術系列之如何理解操控excel的核心api”吧!
為長嶺等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及長嶺網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站設計、網(wǎng)站建設、長嶺網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
測試數(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ù)量不大的時候,這種形式是OK的,但是如果測試數(shù)據(jù)量很大,那么在代碼中維護測試數(shù)據(jù)顯然效率就不高了!在做數(shù)據(jù)驅(qū)動的工作中,通常把測試數(shù)據(jù)保存在excel中,然后再對excel進行讀寫相關操作。在這里以java為例,我?guī)Т蠹沂煜ひ幌聀oi-ooxml jar包的使用,給大家講解一下這個jar包操控excel的核心api。
poi-ooxml jar介紹
jar包導入
Maven中的pom配置信息如下
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency>
首先介紹幾個概念,整個excel文件被稱作workbook、每個工作表被稱作Sheet,每個單元格被稱作cell
api詳解
打開xlsx格式文檔
XSSFWorkbookworkbook = new XSSFWorkbook(new FileInputStream("E:\\test.xlsx"));
打開xls格式文檔
HSSFWorkbookworkbook = new HSSFWorkbook(newFileInputStream("E:\\test.xls"));
關閉文檔
workbook.close();
通過id獲取工作表,0表示第一個工作表
Sheet sheet =workbook.getSheetAt(0);
通過工作表名稱獲取工作表
Sheet sheet =workbook.getSheet("test1");
創(chuàng)建sheet,名命為test2
workbook.createSheet("test2");
創(chuàng)建sheet,名命為test3,并把第一個sheet中的值拷貝過去
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,錯誤
獲取第一列第一行的數(shù)據(jù)值
String value=sheet.getRow(1).getCell(0).getStringCellValue();
把第一列第一行的數(shù)據(jù)設置為kevin1
sheet.getRow(1).getCell(0).setCellValue("kevin1");
注意:如果涉及到對excel的寫入操作或者創(chuàng)建sheet表格的操作,例如:
workbook.createSheet("test2"); workbook.cloneSheet(0,"test3"); sheet.getRow(1).getCell(0).setCellValue("kevin1");
必須添加下面三條語句
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")); //打開xlsx格式 HSSFWorkbookworkbook = new HSSFWorkbook(new FileInputStream("E:\\test.xls"));//打開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,并把第一個sheet中的值拷貝過去 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ù)設置為kevin1 //如果涉及到對excel的寫入操作或者創(chuàng)建sheet表格的操作,必須添加下面三條語句 FileOutputStreamis = new FileOutputStream("E:\\test.xls"); workbook.write(is); is.close(); workbook.close(); } }
感謝各位的閱讀,以上就是“測試驅(qū)動技術系列之如何理解操控excel的核心api”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對測試驅(qū)動技術系列之如何理解操控excel的核心api這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!
網(wǎng)頁題目:測試驅(qū)動技術系列之如何理解操控excel的核心api
轉(zhuǎn)載注明:http://www.muchs.cn/article46/phojeg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務、、微信小程序、面包屑導航、標簽優(yōu)化、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)