1

我使用 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

我想知道这里发生了什么,因为现在我很困惑。

4

0 回答 0