基本信息
源码名称:java excel操作示例代码
源码大小:0.07M
文件格式:.rar
开发语言:Java
更新时间:2015-04-09
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
package ExecutionEngine;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import org.apache.log4j.xml.DOMConfigurator;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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;
import org.apache.xmlbeans.impl.xb.xmlconfig.ConfigDocument.Config;
import Utils.ExcelUtils;
import Config.ActionKeywords;
import Config.Constants;
public class DriverScript {
public static ActionKeywords actionKeywords;
public static String sPageObject;
public static String method[];
public static int iTestStep;
public static int iTestLastStep;
public static int iTestDataRow;
public static String sTestCaseID;
public static String sRunMode;
public static String sData;
public static boolean bResult=true;
public static String queryresult;
public static String sTestStep;
public static String sDesctipt;
public static String sTestName;
public static String sFindByType;
public static String sTestObject;
public static String sOperation;
public static String sexpected;
public static String TestSuiteName;
public static String TestAction_Value;
public static void main(String[] args) throws Exception {
//results_statistical();
//Clean_Data ();
//Run_Test_Suite("配資1000审核成功");
Task_scheduling();
//Record_TestResult() ;
}
/**
* 备份文件并移除Sheet Reports
* @throws IOException
*/
public static void Clean_Data () throws IOException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy_MM_dd_HH_mm");
//生成时间
String dateString = formatter.format(new Date());
String FileName_TestData=System.getProperty("user.dir") "\\src\\Reports\\Reports.xlsx";
String dst=System.getProperty("user.dir") "\\src\\Reports\\" dateString ".xlsx";
FileInputStream ExcelFile3;
ExcelFile3 = new FileInputStream(FileName_TestData);
XSSFWorkbook ExcelWBook3 = new XSSFWorkbook(ExcelFile3);
XSSFSheet ReportSheet=ExcelWBook3.getSheet("Report");
if (ReportSheet!=null){
ExcelUtils.copyFile(FileName_TestData,dst);
for (int i = 0; i < ExcelWBook3.getNumberOfSheets(); i ) {
String sheetname=ExcelWBook3.getSheetAt(i).getSheetName();
if (sheetname.equals("Report")){
ExcelWBook3.removeSheetAt(i);
FileOutputStream fileOut = new FileOutputStream(FileName_TestData);
ExcelWBook3.write(fileOut);
fileOut.close();
ExcelFile3.close();
}
}
}
}
public static void results_statistical2() throws IOException {
String FileName_TestData=System.getProperty("user.dir") "\\src\\Reports\\Reports.xlsx";
FileInputStream ExcelFile3;
ExcelFile3 = new FileInputStream(FileName_TestData);
XSSFWorkbook ExcelWBook3 = new XSSFWorkbook(ExcelFile3);
XSSFSheet ReportSheet=ExcelWBook3.getSheet("Report");
XSSFSheet ResultSheet=ExcelWBook3.getSheet("首页---数据统计");
XSSFRow Row;
boolean Result=true;
int PASSNum=0;
int FAILNum=0;
if (ReportSheet!=null){
int Rows=ReportSheet.getLastRowNum();
for (int i=1;i<Rows;i ){
String TestCaseName=ReportSheet.getRow(i).getCell(1).getStringCellValue();
String TestCaseName_Temp = "";
if(ReportSheet.getRow(i 1)!=null) {
TestCaseName_Temp=ReportSheet.getRow(i 1).getCell(1).getStringCellValue();
if (!TestCaseName.equals(TestCaseName_Temp)){
Result=ReportSheet.getRow(i).getCell(9).getBooleanCellValue();
if (Result==true){
PASSNum=PASSNum 1;
}
else {
FAILNum=FAILNum 1;
}
}
}
}
System.out.println("PASSNum: " PASSNum "FAILNum: " FAILNum);
Row=ResultSheet.getRow(1);
if (Row==null) {
Row=ResultSheet.createRow(1);
}
if (Row.getCell(0)!=null){
Row.getCell(0).setCellValue(PASSNum);
Row.getCell(1).setCellValue(FAILNum);
}
else {
Row.createCell(0).setCellValue(PASSNum);
Row.createCell(1).setCellValue(FAILNum);
}
}
System.out.println("PASSNum : " PASSNum "FAILNum : " FAILNum);
FileOutputStream fileOut = new FileOutputStream(FileName_TestData);
ExcelWBook3.write(fileOut);
fileOut.close();
ExcelFile3.close();
}
public static void results_statistical() throws IOException {
String FileName_TestData=System.getProperty("user.dir") "\\src\\Reports\\Reports.xlsx";
FileInputStream ExcelFile3;
ExcelFile3 = new FileInputStream(FileName_TestData);
XSSFWorkbook ExcelWBook3 = new XSSFWorkbook(ExcelFile3);
XSSFSheet ReportSheet=ExcelWBook3.getSheet("Report");
XSSFSheet ResultSheet=ExcelWBook3.getSheet("首页---数据统计");
XSSFRow Row;
int iTestCasePass=0;
int iTestCaseFail=0;
int iPass=0;
int iFail=0;
int iTestCase=0;
//取出最大行号
int Rows=ReportSheet.getLastRowNum();
for (int i=1;i<Rows 1;i ){
boolean result= ReportSheet.getRow(i).getCell(9).getBooleanCellValue();
if (result==true){
iPass=iPass 1;
}
else {
iFail=iFail 1;
}
// System.out.println("iPass: " iPass "iFail : " iFail);
}
for (int j=0;j<Rows;j ){
String TestCaseName=ReportSheet.getRow(j).getCell(1).getStringCellValue();
String Temp=ReportSheet.getRow(j 1).getCell(1).getStringCellValue();
if (!TestCaseName.equals(Temp)){
iTestCase=iTestCase 1;
// System.out.println("统计TestCase 数量" iTestCase);
}
}
iTestCasePass=iTestCase-iFail;
iTestCaseFail=iFail;
Row=ResultSheet.getRow(1);
if (Row!=null){
Row.getCell(0).setCellValue(iTestCasePass);
Row.getCell(1).setCellValue(iTestCaseFail);
Row.createCell(10).setCellValue(iPass);
Row.createCell(11).setCellValue(iFail);
}
else {
Row=ResultSheet.createRow(1);
Row.createCell(0).setCellValue(iTestCasePass);
Row.createCell(1).setCellValue(iTestCaseFail);
Row.createCell(10).setCellValue(iPass);
Row.createCell(11).setCellValue(iFail);
}
FileOutputStream fileOut = new FileOutputStream(FileName_TestData);
ExcelWBook3.write(fileOut);
fileOut.close();
ExcelFile3.close();
}
public static void Record_TestResult() throws IOException {
String FileName_TestData=System.getProperty("user.dir") "\\src\\Reports\\Reports.xlsx";
FileInputStream ExcelFile3;
ExcelFile3 = new FileInputStream(FileName_TestData);
XSSFWorkbook ExcelWBook3 = new XSSFWorkbook(ExcelFile3);
XSSFSheet ReportSheet=ExcelWBook3.getSheet("Report");
XSSFRow Row;
if (ReportSheet==null) {
ReportSheet=ExcelWBook3.createSheet("Report");
Row=ReportSheet.createRow(0);
Row.createCell(0).setCellValue("测试套件名称");
Row.createCell(1).setCellValue("测试用例");
Row.createCell(2).setCellValue("测试步骤");
Row.createCell(3).setCellValue("测试描述");
Row.createCell(4).setCellValue("定位方式");
Row.createCell(5).setCellValue("测试对象名称");
Row.createCell(6).setCellValue("测试对象实休");
Row.createCell(7).setCellValue("执行操作");
Row.createCell(8).setCellValue("测试数据");
Row.createCell(9).setCellValue("测试结果");
Row.createCell(10).setCellValue("测试结际结果");
FileOutputStream fileOut = new FileOutputStream(FileName_TestData);
ExcelWBook3.write(fileOut);
fileOut.close();
}
int LastNum2=ReportSheet.getLastRowNum();
Row=ReportSheet.createRow(LastNum2 1);
Row.createCell(0).setCellValue(TestSuiteName);
Row.createCell(1).setCellValue(sTestCaseID);
Row.createCell(2).setCellValue(sTestStep);
Row.createCell(3).setCellValue(sDesctipt);
Row.createCell(4).setCellValue(sFindByType);
Row.createCell(5).setCellValue(sTestName);
Row.createCell(6).setCellValue(sTestObject);
Row.createCell(7).setCellValue(sOperation);
if (sData!=null){
Row.createCell(8).setCellValue(sData);
}
Row.createCell(9).setCellValue(bResult);
if (sOperation!=null && sOperation.contains("check")){
Row.createCell(10).setCellValue(TestAction_Value);
}
FileOutputStream fileOut = new FileOutputStream(FileName_TestData);
ExcelWBook3.write(fileOut);
fileOut.close();
ExcelFile3.close();
}
public static void Task_scheduling() throws Exception {
Clean_Data ();
String FileName_TestData=System.getProperty("user.dir") "\\src\\TestSuite.xlsx";
FileInputStream ExcelFile2;
ExcelFile2 = new FileInputStream(FileName_TestData);
XSSFWorkbook ExcelWBook2 = new XSSFWorkbook(ExcelFile2);
XSSFSheet ExcelWSheet2=ExcelWBook2.getSheet("任务执行计划");
int LastNum2=ExcelWSheet2.getLastRowNum();
for (int j=1;j<LastNum2 1;j ){
XSSFRow Row =ExcelWSheet2.getRow(j);
String TestSuite=Row.getCell(0).getStringCellValue();
String TestSuiteMode=Row.getCell(1).getStringCellValue();
if (TestSuiteMode.equals("Yes")) {
Run_Test_Suite(TestSuite);
}
}
results_statistical();
}
public static void Run_Test_Suite(String SuiteName) throws Exception {
String FileName_TestSuite=System.getProperty("user.dir") "\\src\\TestSuite.xlsx";
FileInputStream ExcelFile;
try {
ExcelFile = new FileInputStream(FileName_TestSuite);
XSSFWorkbook ExcelWBook = new XSSFWorkbook(ExcelFile);
XSSFSheet TestSuiteSheet=ExcelWBook.getSheet("测试套件 ");
int LastNum=TestSuiteSheet.getLastRowNum();
for (int i=1;i<LastNum 1;i ){
//获取测试套件中最大行号
XSSFRow Row =TestSuiteSheet.getRow(i);
TestSuiteName=Row.getCell(0).getStringCellValue();
//获取测试数据索引值
String TestData=Row.getCell(1).getStringCellValue();
int TestDataIndex=Integer.parseInt(TestData);
//获测试用例名称
sTestCaseID=Row.getCell(2).getStringCellValue();
//运行测试用例(根据测试套件指定的用例名称和数据索引值执行)
if (SuiteName.equals(TestSuiteName)){
Run_Test_Case(sTestCaseID,TestDataIndex);
System.out.println("测试用例名称" sTestCaseID "测试套件名称 ==" TestSuiteName);
}
}
ExcelFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public static void Run_Test_Case (String SheetName,int SetDataIndex) throws Exception {
//设置用例文件名称
String FileName_TestCase=System.getProperty("user.dir") "\\src\\TestCase\\TestCase.xlsx";
//打开用例
Utils.ExcelUtils.setExcelFile(FileName_TestCase);
//加载配置文件
DOMConfigurator.configure("log4j.xml");
//统计用例行数
int iTeseCaseRows=Utils.ExcelUtils.getRowCount(SheetName);
//依次读取各单元格中的内容
for (iTestStep=1;iTestStep<iTeseCaseRows;iTestStep ) {
sTestStep=Utils.ExcelUtils.getCellData(iTestStep, Constants.Col_TestStep_ID, SheetName);
sDesctipt=Utils.ExcelUtils.getCellData(iTestStep, Constants.Col_TestStep_Descript, SheetName);
sTestName=Utils.ExcelUtils.getCellData(iTestStep, Constants.Col_TestStep_TestContrl, SheetName);
sFindByType=Utils.ExcelUtils.getCellData(iTestStep,Constants.Col_TestStep_FindByType, SheetName);
sTestObject=Utils.ExcelUtils.getCellData(iTestStep,Constants.Col_TestStep_TestObject, SheetName);
sOperation=Utils.ExcelUtils.getCellData(iTestStep, Constants.Col_TestStep_Operation, SheetName);
sData=Utils.ExcelUtils.getCellData(iTestStep, Constants.Col_TestStep_Data, SheetName);
if (sData.contains("数化_")){
//Split sData;
String tem[]=sData.split("_");
String temp_cell=tem[1];
int cell= Integer.parseInt(temp_cell);
String FileName_TestData=System.getProperty("user.dir") "\\src\\TestData\\TestData.xlsx";
FileInputStream ExcelFile = new FileInputStream(FileName_TestData);
XSSFWorkbook ExcelWBook = new XSSFWorkbook(ExcelFile);
XSSFSheet ExcelWSheet=ExcelWBook.getSheet(SheetName);
XSSFRow Row =ExcelWSheet.getRow(SetDataIndex);
sData=Row.getCell(cell).getStringCellValue();
ExcelFile.close();
}
System.out.println("测试用例名称==" sTestCaseID "测试步骤 =" sTestStep "测试对象 =" sTestName "操作方法 =" sOperation "测试数据 =" sData );
execute_Actions(sOperation);
Record_TestResult();
if (bResult==false){
ActionKeywords.Screenshot("",TestSuiteName "--" sTestCaseID "-----" sTestStep );
break;
}
}
}
private static void execute_Actions(String OperationName) throws Exception {
Thread.sleep(500);
switch (OperationName) {
case "scrollIntoWebElement":
ActionKeywords.scrollIntoWebElement(sFindByType, sTestObject, sData);
break;
case "click":
ActionKeywords.click(sFindByType, sTestObject, sData);
break;
case "contextclick":
ActionKeywords.contextclick(sFindByType, sTestObject, sData);
break;
case "doubleClick":
ActionKeywords.doubleClick(sFindByType, sTestObject, sData);
break;
case "openBrowser":
ActionKeywords.openBrowser(sFindByType, sTestObject, sData);
break;
case "switchtowindows":
ActionKeywords.switchtowindows(sFindByType, sTestObject, sData);
break;
case "navigate":
ActionKeywords.navigate(sFindByType, sTestObject, sData);
break;
case "alert":
ActionKeywords.alert(sFindByType, sTestObject, sData);
break;
case "click_table":
ActionKeywords.click_table(sFindByType, sTestObject, sData);
break;
case "select":
ActionKeywords.select(sFindByType, sTestObject, sData);
break;
case "input":
ActionKeywords.input(sFindByType, sTestObject, sData);
break;
case "closeBrowser":
ActionKeywords.closeBrowser(sFindByType, sTestObject, sData);
break;
case "checkText":
ActionKeywords.checkText(sFindByType, sTestObject, sData);
break;
case "check_table_text":
ActionKeywords.check_table_text(sFindByType, sTestObject, sData);
break;
case "querySQL":
ActionKeywords.querySQL(sFindByType, sTestObject, sData);
break;
default:
break;
}
}
}