0

我正在使用 ExcelLibrary 按照 Mike Webb 的示例将结果从 SP 导出到 Excel:从 C# 创建 Excel (.XLS 和 .XLSX) 文件

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

例子:

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

有没有什么办法解决这一问题?我相信这是因为单元格格式。

4

1 回答 1

2

您没有显示任何代码,但我认为问题是您需要为ExcelLibrary.SpreadSheet.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);

该项目的文档非常简单,但在项目的 Google 代码主页上演示了各种单元格格式选项。

于 2013-08-06T00:07:31.210 回答