2017-07-27 29 views
0

我想在EPPlus的幫助下創建Excel報告,但是它在1900.01.00之前放置日期。進入Excel工作表時,它會轉換爲負數或長的「##### ...」行出現在Excel中日期的位置。 我已經設置了格式,但它並沒有幫助:在1900.01.00之前的帶有日期時間的EPPlus Excel報告

workSheet.Column(columnIndex).Style.Numberformat.Format = "yyyy.mm.dd."; 

我用這個頁面:

http://www.c-sharpcorner.com/article/export-to-excel-in-asp-net-mvc/

回答

1

MS Excel不能識別1900年的日期數前的日子格式是沒用的。您需要在C#中格式化日期,並將值作爲字符串,而不是數字。

爲了設置數字格式爲文本使用:

workSheet.Column(columnIndex).Style.Numberformat.Format = "@"; 

爲了格式化日期使用下面的代碼,如果日期是日期時間:

System.IFormatProvider formatProvider = new System.Globalization.CultureInfo("en-US", true);//or a different culture 
dateTime.ToString("yyyy.MM.dd.", formatProvider)) 
+0

謝謝您的回答但我已經完成了這一行:dataTable.Columns.Add(ColumnsToTake.ElementAt(i).Value,(property.PropertyType == typeof(System.DateTime)?typeof(System.String):(Nullable.GetUnderlyingType property.PropertyType)?? property.PropertyType))); 但我不需要時間部分的日期,我不能刪除它。你能幫我嗎,請問? –

+0

這是否意味着我必須瀏覽datetime列的所有單元格,並將其值設置爲「yyyy.MM.dd.」格式? –

+0

如果這對你更容易,你可以瀏覽所有的日期。或者檢查日期是否在1900年前,並將其格式化爲文本,並按照現在的方式保留其餘部分。 –