需求
将已存在Excel文件,根据单元格值的条件查询,将查询结果回写到原excel文件中
public static void read() throws IOException {
String filePath = "E:\\11.xls";
Workbook wookbook = new HSSFWorkbook(new FileInputStream(filePath));
Sheet sheet = wookbook.getSheetAt(1);
//获取到Excel文件中的所有行数
int rows = sheet.getPhysicalNumberOfRows();
//遍历行
List<Map<String, String>> list = new ArrayList<>();
for (int i = 9; i < rows; i++) {
Row row = sheet.getRow(i);
if (row != null) {
//获取到Excel文件中的所有的列
//int cells = row.getPhysicalNumberOfCells();
//订单号
String orderCell = row.getCell(2).getStringCellValue();
String itemName = row.getCell(3).getStringCellValue();
FileOutputStream out = null;
try {
String specValue = queryOrderId(Long.valueOf(orderCell), itemName);
//设置单元格值
row.getCell(6).setCellValue(specValue);
out = new FileOutputStream(filePath);
wookbook.write(out);
log.info("订单:[{}],行:[{}];itemName:[{}],specValue:[{}]", orderCell, i, itemName, specValue);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
System.out.println("处理完毕");
}