我正在尝试获取数据库数据并将数据传递到Excel工作表中,但是问题是我在DB中有一个日期格式的列,当我将其传递给Excel时,它给了我一个奇怪的数字,例如41793,在这里是我的代码的一点:
for (Defect defect : r5Defects) {
r = s.createRow(rowNum++);
r.createCell(0).setCellValue(defect.getId());
...
r.createCell(5).setCellValue(HSSFDateUtil.getExcelDate(defect.getCreated()));
...
}
我应该怎么做才能避免这个问题?
最佳答案
我创建了以下方法,它可以正常工作:
HSSFCellStyle cellStyleDate = (HSSFCellStyle) wb.createCellStyle();
cellStyleDate.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
public void cell(Workbook wb, Row r, Date value,HSSFCellStyle cellStyleDate, int n) {
HSSFCell cell = (HSSFCell) r.createCell(n);
cell.setCellStyle(cellStyleDate);
cell.setCellValue(value);
}