所以我需要读取一个包含大约5200行和11列的excel文件(.xlsx)。我需要读取D到M列,找到包含8位数字(ID)的所有单元格。
然后我需要用名称替换包含ID的单元格。我将通过运行一个简单的SQL查询来获取名称。
然后我想用更新的更改编写excel文件。 我使用过POI,但我对如何更新单元格感到困惑。
我想我的问题是在Java中最好的解决方法是什么? 任何意见都是有价值的。
感谢。
答案 0 :(得分:1)
步骤,使用Apache POI:
在输入模式下打开excel文件(输入流)
使用POI API并阅读Excel内容
使用不同的setCellValue方法更新单元格的值。
关闭Excel输入文件(输入流)
在输出模式(outputstream)中打开相同的excel文件
在输出文件中写入更新的工作簿的内容
关闭输出excel文件
<强>示例:强>
try {
FileInputStream file = new FileInputStream(new File("C:\\update.xls"));
HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(0);
Cell cell = null;
//Update the value of cell
cell = sheet.getRow(1).getCell(2);
cell.setCellValue(cell.getNumericCellValue() * 2);
cell = sheet.getRow(2).getCell(2);
cell.setCellValue(cell.getNumericCellValue() * 2);
cell = sheet.getRow(3).getCell(2);
cell.setCellValue(cell.getNumericCellValue() * 2);
file.close();
FileOutputStream outFile =new FileOutputStream(new File("C:\\update.xls"));
workbook.write(outFile);
outFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}