所以解释起来有点复杂,但我会尽我所能。
我想要一个带有我称之为Count的单元格的excel文件,这个数字的目的是手动设置它,所以当我读取工作表中的数据时,它会读取该行的数据,并在测试结束时我想在这个数字上添加一个。
public String[] readNewHireData() {
String ex2[] = new String[100];
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
File file = new File("C:/Users/saahme/Documents/filepath.xls");
Workbook workbook = WorkbookFactory.create(file);
Sheet worksheet = workbook.getSheetAt(1);
Row rowCount = worksheet.getRow(1);
Cell count = rowCount.getCell(11);
theCount = new BigDecimal(count.getNumericCellValue()).toPlainString();
Row row1 = worksheet.getRow(Integer.parseInt(theCount));
Cell firstName = row1.getCell(0);
ex2[0] = firstName.getStringCellValue();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
}
return ex2;
}
好的,所以当测试运行时,我希望它读取计数并且该数字为1,这意味着当我的测试获得每行的stringValue时它将变为1(我已将代码缩短为make它更具可读性)。一旦测试结束,我希望它在计数上添加一个。所以我试着这样做。
public void writeToExcel() {
try {
HSSFWorkbook workbook2 = new HSSFWorkbook();
FileOutputStream fos = new FileOutputStream("C:/Users/saahme/Documents/filepath.xls");
HSSFSheet worksheet2 = workbook2.getSheetAt(1);
HSSFRow rowCount = worksheet2.getRow(1);
HSSFCell cellL2 = rowCount.createCell(12);
cellL2.setCellValue(theCount + 1);
workbook2.write(fos);
} catch(FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
}
但是我已经意识到我正在创建一个新文件并覆盖我想要做的旧文件,我只想编辑readNewHireData末尾的单元格并添加一个但是对于我的生活,无论我在尝试什么都行不通。我确实试过了
Row rowCount2 = worksheet.getRow(1);
Cell count2 = rowCount2.getCell(11);
count2.setCellValue(theCount + 1);
但这似乎不起作用,我觉得我非常接近这里的答案,只需要在那里轻推我。一如既往地感谢您的帮助:)