91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

自動化excl學習筆記

發布時間:2020-07-13 15:35:01 來源:網絡 閱讀:491 作者:知止內明 欄目:軟件技術

學習excl操作

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.text.DecimalFormat;

import java.util.ArrayList;

import java.util.List;


import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import org.apache.poi.ss.usermodel.Workbook;

import org.apache.poi.xssf.usermodel.XSSFCell;

import org.apache.poi.xssf.usermodel.XSSFRow;

import org.apache.poi.xssf.usermodel.XSSFSheet;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;



/**

 * 本類主要實現后綴為xlsx的 excel文件操作

 */

public class ExcelUtil {


private XSSFSheet ExcelWSheet; //excl單元格sheet頁面

private XSSFWorkbook ExcelWBook;  //整個excl對象

private XSSFCell Cell; // 列對象

private XSSFRow Row;// 行對象

private String filePath; // 文件路徑


/** 構造方法 */

// 設定要操作的 Excel 的文件路徑和 Excel 文件中的 sheet 名稱

// 在讀寫excel的時候,均需要先調用此方法,設定要操作的 excel 文件路徑和要操作的 sheet 名稱

public ExcelUtil(String Path, String SheetName) throws Exception {

FileInputStream ExcelFile;


try {

// 實例化 excel 文件的 FileInputStream 對象

ExcelFile = new FileInputStream(Path);

// 實例化 excel 文件的 XSSFWorkbook 對象

ExcelWBook = new XSSFWorkbook(ExcelFile);  //整個文件

// 實例化 XSSFSheet 對象,指定 excel 文件中的 sheet 名稱,后續用于 sheet 中行、列和單元格的操作

ExcelWSheet = ExcelWBook.getSheet(SheetName);


} catch (Exception e) {

throw (e);

}

this.filePath = Path;


}


// 讀取 excel 文件指定單元格的函數,此函數只支持后綴為xlsx的 excel 文件

public String getCellData(int RowNum, int ColNum) throws Exception {


try {

// 通過函數參數指定單元格的行號和列號,獲取指定的單元格對象

Cell = ExcelWSheet.getRow(RowNum).getCell(ColNum);

// 如果單元格的內容為字符串類型,則使用 getStringCellValue 方法獲取單元格的內容

// 如果單元格的內容為數字類型,則使用 getNumericCellValue() 方法獲取單元格的內容

String CellData = "";


/** 獲取單元格類型 */

if (Cell.getCellType() == XSSFCell.CELL_TYPE_STRING) { // 如果是字符串

CellData = Cell.getStringCellValue();

} else if (Cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) { // 如果是數字

DecimalFormat df = new DecimalFormat("0");

CellData = df.format(Cell.getNumericCellValue());

}


return CellData;


} catch (Exception e) {

e.printStackTrace();

return ""; //如果異常返回空

}


}


/**在Excel文件的執行單元格中寫輸入數據,此函數只支持后綴為xlsx的文件寫入

     * @param result 結果

     * @param rowNum 行數

     * @param cellNum 列數

     * */

public void setCellData(int RowNum, int ColNum, String result) throws Exception {


try {

// 獲取 excel文件中的行對象

Row = ExcelWSheet.getRow(RowNum);

// 如果單元格為空,則返回 Null

Cell = Row.getCell(ColNum, Row.RETURN_BLANK_AS_NULL);


if (Cell == null ) {

// 當單元格對象是 null 的時候,則創建單元格

// 如果單元格為空,無法直接調用單元格對象的 setCellValue 方法設定單元格的值

Cell = Row.createCell(ColNum);

// 創建單元格后可以調用單元格對象的 setCellValue 方法設定單元格的值

Cell.setCellValue(result);


} else {

// 單元格中有內容,則可以直接調用單元格對象的 setCellValue 方法設定單元格的值

Cell.setCellValue(result);

System.out.println("執行完成");


}

// 實例化寫入 excel 文件的文件輸出流對象

FileOutputStream fileOut = new FileOutputStream(filePath);

// 將內容寫入 excel 文件中

ExcelWBook.write(fileOut);

// 調用flush 方法強制刷新寫入文件

fileOut.flush();

// 關閉文件輸出流對象

fileOut.close();


} catch (Exception e) {

e.printStackTrace();

throw (e);


}

}


/**從 excel 文件獲取測試數據的靜態方法*/ 

public static Object[][] getTestData(String excelFilePath, String sheetName) throws IOException {


// 根據參數傳入的數據文件路徑和文件名稱,組合出 excel 數據文件的絕對路徑

// 聲明一個 file 文件對象

File file = new File(excelFilePath);


// 創建 FileInputStream 對象用于讀取 excel 文件

FileInputStream inputStream = new FileInputStream(file);


// 聲明 Workbook 對象

Workbook Workbook = null;


// 獲取文件名參數的后綴名,判斷是xlsx文件還是xls文件

String fileExtensionName = excelFilePath.substring(excelFilePath.indexOf("."));


// 判斷文件類型如果是xlsx,則使用 XSSFWorkbook 對象進行實例化  2007

// 判斷文件類型如果是xls,則使用 SSFWorkbook 對象進行實例化  2003

if (fileExtensionName.equals(".xlsx")) {


Workbook = new XSSFWorkbook(inputStream);


} else if (fileExtensionName.equals(".xls")) {


Workbook = new HSSFWorkbook(inputStream);


}


// 通過 sheetName 參數,生成 sheet 對象

Sheet Sheet = Workbook.getSheet(sheetName);


// 獲取 excel 數據文件中 sheet1中數據的行數,getLastRowNum 方法獲取數據的最后行號

// getFirstRowNum 方法獲取數據的第一行行號,相減之后算出數據的行數

// 注意:excel 文件的行號和列號都是從 0 開始

int rowCount = Sheet.getLastRowNum() - Sheet.getFirstRowNum();

System.out.println(rowCount);

// 創建名為 records 的 list 對象來存儲從 excel數據文件讀取的數據

//

List<Object[]> records = new ArrayList<Object[]>();

// 使用 2 個 for 循環遍歷 excel 數據文件的所有數據(除了第一行,第一行是數據列名稱)

// 所以 i 從1開始,而不是從 0; 0表示表頭

for (int i = 1; i <= rowCount; i++) {

// 使用 getRow 方法獲取行對象

Row row = Sheet.getRow(i);


/*

* 聲明一個數組,來存儲 excel 數據文件每行中的測試用例和數據,數組的大小用 getLastCellNum-1

* 來進行動態聲明,實現測試數據個數和數組大小相一致因為 excel 數據文件中

* 的測試數據行的最后一個單元格為測試執行結果,倒數第二個單元格為此測試數據行

* 是否運行的狀態位,所最后兩列的單元格數據并不需要傳入到測試方法中,所以使用 getLastCellNum-2

* 的方式去掉每行中的最后兩個單元格數據,計算出需要存儲的測試數據個數,并 作為測試數據數組的初始化大小

*/

String fields[] = new String[row.getLastCellNum() - 2];//最后兩行不是要的所以去掉2  fielcls存放結果

/*

* if 用于判斷數據行是否要參與測試的執行,excel 文件的倒數第二列為數據行的狀態位,標記為 *

* "y"表示此數據行要被測試腳本執行,標記為非"y"的數據行均被認為不會參與測試腳本的執行,會 被跳過

*/

System.out.println(row.getCell(row.getLastCellNum() - 2).getStringCellValue());

if (row.getCell(row.getLastCellNum() - 2).getStringCellValue().equals("y")) { //y判斷是否之執行。 equalsIgnoreCase


for (int j = 0; j < row.getLastCellNum() - 2; j++) {

// 判斷excel 的單元格字段是數字還是字符,字符串格式調用 getStringCellValue 方法獲取

// 數字格式調用 getNumericCellValue 方法獲取

if (row.getCell(j).getCellType() == XSSFCell.CELL_TYPE_STRING) { //字符串

fields[j] = row.getCell(j).getStringCellValue();

} else if (row.getCell(j).getCellType() == XSSFCell.CELL_TYPE_NUMERIC) {  

DecimalFormat df = new DecimalFormat("0");

fields[j] = df.format(row.getCell(j).getNumericCellValue());

} else {

System.out.println("格式錯誤");

}

}

// fields 的數據對象存儲到 records的 list 中

records.add(fields);

}


}


// 定義函數返回值,即 Object[][]

// 將存儲測試數據的 list 轉換為一個 Object 的二維數組

Object[][] results = new Object[records.size()][];

// 設置二維數組每行的值,每行是個object對象

for (int i = 0; i < records.size(); i++) {

results[i] = records.get(i);

}

// 關閉 excel 文件

return results;

}


public int getLastColumnNum() {

// 返回數據文件的最后一列的列號,如果有12列,則結果返回 11

return ExcelWSheet.getRow(0).getLastCellNum() - 1;

}


public static void main(String[] args) throws Exception 

{

// ExcelUtil eu=new ExcelUtil("configs/test.xlsx", "Sheet1");

// eu.setCellData(2, 7, "執行失敗"); //  寫入ok

// System.out.println(eu.getCellData(1, 2));  //讀取ok

//

System.out.println("讀取:");

Object[][] obd = getTestData("D:\\TOOL\\sysbj\\BjToon\\configs\\test.xlsx", "Sheet3"); 

for(int i =0 ; i < obd.length; i++)

{

Object[] obl = obd[i];

System.out.println("=============");

for(int j = 0; j < obl.length; j++)

{

System.out.println(obl[j]);

}

}

System.out.println("excle讀取成功:");

}

}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

秀山| 图们市| 辉县市| 尉氏县| 莲花县| 临江市| 崇阳县| 锡林郭勒盟| 镇坪县| 鸡西市| 思茅市| 涿鹿县| 通城县| 都江堰市| 定日县| 祁门县| 盈江县| 繁峙县| 彩票| 通辽市| 罗城| 石泉县| 札达县| 广安市| 怀化市| 商城县| 广宁县| 金平| 咸丰县| 满洲里市| 嘉义县| 方城县| 额尔古纳市| 桃园市| 余干县| 宁陵县| 上思县| 文水县| 河北省| 高碑店市| 高青县|