我正在尝试获取数据库数据并将数据传递到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);
    }

09-27 05:54