使用ExcelLibrary c#使用列日期时间从SP生成Excel文件的问题

时间:2013-08-05 21:42:17

标签: c# excellibrary

我正在使用ExcelLibrary将结果从SP导出到Excel,遵循Mike Webb的示例:Create Excel (.XLS and .XLSX) file from C#

但SP的其中一列返回一个DateTime字段,每次生成excel文件时,该列都会显示不同的值。

示例:

In SP: 08/05/2013  5:27PM
In Excel: 40029.72778

有什么方法可以解决这个问题吗?我认为这是因为细胞格式。

1 个答案:

答案 0 :(得分:2)

您没有显示任何代码,但我认为问题是您需要为ExcelLibrary.SpreadSheet.Cell对象指定格式。

以下代码演示了您所看到的问题并格式化Cell以更正它:

// DateTime = 08/05/2013  5:27PM, from your SP.
var dateTime = new DateTime(2013, 8, 5, 17, 27, 00);

string file = "..\\..\\..\\..\\newdoc1.xls";
Workbook workbook = new Workbook();
Worksheet worksheet = new Worksheet("First Sheet");

// This reproduces your problem.
worksheet.Cells[0, 0] = new Cell(dateTime);
// This corrects the problem by specifying Cell formatting.
worksheet.Cells[0, 1] = new Cell(dateTime, @"YYYY\-MM\-DD");

workbook.Worksheets.Add(worksheet);

workbook.Save(file);

此项目的文档非常简单,但project's Google Code home page上演示了各种Cell格式选项。