0

私は ExcelLibrary を使用して、Mike Webb の例に従って SP から Excel に結果をエクスポートしています: Create Excel (.XLS and .XLSX) file from C#

しかし、SP の列の 1 つは DateTime フィールドを返し、Excel ファイルを生成するたびに、その列は異なる値で表示されます。

例:

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

これを修正する方法はありますか?これはセル形式によるものだと思います。

4

1 に答える 1

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);

このプロジェクトのドキュメントは非常に軽いですが、プロジェクトの Google コード ホームページでさまざまなセルの書式設定オプションが示されています。

于 2013-08-06T00:07:31.210 に答える