我的脚本是检查两个excel文件(xlsx以不同的间隔从Web应用程序导出,如更新前和更新后),其中包含多列相同数量的选项卡。一切都一样,但我必须比较价值观。我已经做了4套,但在第5盘挣扎。无法读取文件。检查1)尺寸2)减少纸张3)删除一些数据但没有用。有时它在调试1:10时读取,但在运行时它会显示空指针异常。
try {
// Open the Excel file
String FileNameforScriptsFilePath = "D:\\Functional Automation
Data\\Pest WTO with change before.xlsx";
FileInputStream FileNameforScriptsFile = new
FileInputStream(FileNameforScriptsFilePath);
XSSFWorkbook DataCleanBefore = new
XSSFWorkbook(FileNameforScriptsFile);
// File DataCleaningBeforeFile=new File("D:\\Functional Automation
Data\\Pest RTO with change before.xlsx");//all are similar names
// OPCPackage PestWTOwithchangebeforepkg =
OPCPackage.open(DataCleaningBeforeFile.getAbsolutePath());
// XSSFWorkbook DataCleanBefore = new
XSSFWorkbook(PestWTOwithchangebeforepkg);
XSSFSheet BasicAddressDetailsBeforeSheet =
DataCleanBefore.getSheet("Basic Address Details");
我也尝试过使用SXSSFSheet,以及// OPC中给出的内容。请帮助,4天后挣扎。
答案 0 :(得分:0)
以下是您的问题的解决方案:
关于解决方案的几句话 -
XSSFWorkbook
对象。try{}
块时,请将其正确关闭。Try{}
块必须至少后跟catch{}
块。Base Exception
。这是您自己的工作代码,删除所有不需要的代码,打开excel文件“D:\功能自动化数据害虫WTO,更改之前的.xlsx”,读取“基本地址详细信息”表并计算行数在它。
try {
// Open the Excel file
File FileNameforScriptsFilePath = new File(
"D:\\Functional Automation Data Pest WTO with change before.xlsx");
FileInputStream FileNameforScriptsFile = new FileInputStream(FileNameforScriptsFilePath);
XSSFWorkbook DataCleanBefore = new XSSFWorkbook(FileNameforScriptsFile);
XSSFSheet BasicAddressDetailsBeforeSheet = DataCleanBefore.getSheet("Basic Address Details");
int rowCount = BasicAddressDetailsBeforeSheet.getLastRowNum();
System.out.println("Total Rows is : " + (rowCount + 1));
DataCleanBefore.close();
} catch (Exception e) {
System.out.println(e);
如果这有助于您,请告诉我。