我使用 Jxl (v2.6.10) 库来生成 xls 文档。我想要格式化 DateTime 单元格。如果不使用单元格格式,则一切正常:
WritableCell wc = new jxl.write.DateTime(5, 5, new java.util.Date());
sheet.addCell(wc);
在文档中,单元格具有日期格式并显示为“8/16/2012”。但是当我添加:
WritableCell wc = new jxl.write.DateTime(5, 5, new java.util.Date());
wc.setCellFormat(new WritableCellFormat());
sheet.addCell(wc);
然后只显示“41137.4459694444”(我使用的是 LibreOffice,但它与 Google 文档相同)。当我在电子表格中手动更改单元格格式时,数字按预期变为 8/16/2012。
我认为 setCellFormat 会覆盖 wc.getCellType() 但事实并非如此:
jxl.write.DateTime wc = new jxl.write.DateTime(5, 5, new java.util.Date());
System.out.println(wc.getType());
wc.setCellFormat(new WritableCellFormat());
System.out.println(wc.getType());
wc.setDate(new java.util.Date());
System.out.println(wc.getType());
产量:
Date
Date
Date
我想知道这里发生了什么,因为现在我很困惑。