以下是我正在使用的方法。它能够在第一张工作簿上读/写,但对于所有其他可用工作表,它不能这样做。 在下面找到代码:
public void ResetExecutionStatus(String logpath , String columnName)
{
boolean isPresent = false;
try
{
FileInputStream fs = new FileInputStream(new File(logpath));
XSSFWorkbook workBook = new XSSFWorkbook(fs);
int x = workBook.getNumberOfSheets();
for (int n=1; n<x; n++)
{
XSSFSheet sheet = workBook.getSheetAt(n);
System.out.println("Sheet Name: "+sheet.getSheetName());
for (int i=0; i<sheet.getLastRowNum(); i++)
{
Row r = sheet.getRow(i);
System.out.println("Value of i: "+i);
for (int cn=0; cn<r.getLastCellNum(); cn++)
{
Cell c = r.getCell(cn);
String text = c.getStringCellValue();
if(columnName.equalsIgnoreCase(text))
{
System.out.println("Column Name: "+text);
for(int a = i+1 ; a <sheet.getLastRowNum(); a++)
{
Row p = sheet.getRow(a);
Cell q = p.getCell(cn);
String CurrentStatus = q.getStringCellValue();
System.out.println("Current Status: "+CurrentStatus);
if(CurrentStatus.equalsIgnoreCase("PASS") || CurrentStatus.equalsIgnoreCase("FAIL") || CurrentStatus.equalsIgnoreCase("ON HOLD"))
{
q .setCellValue("NOT EXECUTED");
}
}
isPresent = true;
}
if(isPresent){break;}
}
if(isPresent){break;}
}
}
FileOutputStream out = new FileOutputStream(new File(logpath));
workBook.write(out);
out.close();
fs.close();
System.out.println("Data has been reset for Column Name : " +columnName );
}
catch(IOException e)
{
e.printStackTrace();
}
}
主要方法是:
public class TestCall {
public static void main(String[] args) {
String path = "C:\\Users\\abcdef\\Desktop\\ManualLog\\TestLog.xlsx";
clearLog ob = new clearLog();
ob.ResetExecutionStatus(path, "Execution Status");
}
}
控制台中的结果是:
工作表名称:Sheet1 i的值:0 i的值:1 i的值:2 i的值:3 i的值:4 列名:执行状态 当前状态: 现状:未执行 当前状态: 当前状态: 当前状态: 当前状态: 现状:未执行 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 现状:未执行 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 现状:未执行 当前状态: 当前状态: 当前状态: 当前状态: 现状:未执行 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 现状:未执行 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 现状:未执行 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 现状:未执行 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 现状:未执行 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 现状:未执行 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 当前状态: 表名:Sheet2 i的值:0 表名:Sheet3 i的值:0 表名:Sheet4 i的值:0 已为列名称:执行状态
重置数据