如何使用自定义格式填充Excel文档中的单元格
我有一份工作,我必须在工作时间填写Excel表格,我需要将该file upload到Dropbox地图。 我想做一个程序,自动为我做这个。 上传文件到Dropbox现在正在工作,但我想通过我的Java应用程序更改Excel文件中的单元格。 这是我的Java代码:
InputStream inp = new FileInputStream("name.xls"); Workbook wb = WorkbookFactory.create(inp); Sheet sheet = wb.getSheetAt(0); Row row= sheet.getRow(7); Cell cell = row.getCell(1); String week = cell.getRichStringCellValue().getString(); cell.setCellValue("18:00"); FileOutputStream fileOut = new FileOutputStream("name.xls"); wb.write(fileOut); fileOut.close();
我可以用18:00填满单元格,但问题是单元格的格式是自定义的。 当我看到自定义格式时,它表示使用[u]:mm
。 当我在18:00填写时,它将18:00放在单元格中,但它保留在单元格的左侧而不是右侧,所以我认为格式不正确。 所以我的问题是,我如何正确填写自定义格式的单元格。
请参阅自定义格式的Apache POI文档
要设置一个单元格保存时间18:00
,那么你应该做的是
// Format to hold a time DataFormat format = wb.createDataFormat(); CellStyle style = wb.createCellStyle(); style.setDataFormat(format.getFormat("HH:MM")); // Set the cell to hold 18:00 and style Cell cell = row.getCell(1); cell.setCellValue(18.0/24.0); cell.setCellStyle(style);
Excel中的时间是一整天的一小部分,所以在18:00你需要设置(18/24)
,然后将时间样式应用到它
或者,创build一个Java Date对象,并设置它,如果更容易