Tag: npoi hssf

使用NPOI将date写入Excel文件的问题

我目前正在使用NPOI来生成基于我的asp.net mvc应用程序数据库的Excel文件。 我几乎完成了代码,除了当我试图写date到Excel时,我一直得到一个小问题。 在数据库(MS SQL服务器)我把date保存为41883,41913等…在C#中我可以转换为一个DataTime对象使用 DateTime dt = DateTime.FromOADate(Convert.ToDouble(41883)); 我用来写date到Excel的代码看起来是这样的: var cell = excelRow.CreateCell(columnIndex); IDataFormat format = workbook.CreateDataFormat(); short dateFormat = format.GetFormat("dd/MM/yyyy"); cell.SetCellValue(DateTime.FromOADate(Convert.ToDouble(dbDateValue))); ICellStyle cellStyle = workbook.CreateCellStyle(); cellStyle.DataFormat = dateFormat; cell.CellStyle = cellStyle; 这只是我的代码示例(正在写date的部分)。 这段代码的问题是,只有部分date单元格实际上被格式化为date,对于所有其他date单元格,我仍然看到数据库中的值,如数据库41883,41913等,当然,我可以select和应用短date/date从Excel格式(但我不希望这一点)。 任何人都可以让我知道为什么会出现这样的行为(格式只适用于部分单元格)…我甚至试图使用HSSFDataFormat.GetBuiltinFormat(“date”),但在这种情况下没有格式化单元格。 上面的图像解释更好的我的问题…当我select第一列中的第一个单元格,我看到单元格被格式化为“自定义”…所有其他未格式化的值是一般。 一旦我select的单元格,我可以格式化为Exceldate没有任何问题。 这是奇怪的,因为所有的date单元格执行相同的代码,但只有一些得到适当的格式… 任何想法或build议,将不胜感激! 谢谢! 安德烈