2016-06-17 3 views
3

Ich habe versucht, Excel zu importieren, die Datumsspalte in Excel ändert sich in Zahlenformat. Zum Beispiel Ich habe 3 Spalte in dem Excel- Namen, Alter und DobDatumsformat beim Konvertieren von Excel zu Datentabelle in asp.net geändert C#

Wenn ich versuche, diese in die Datentabelle des Datum in der Spalte Dob Excel zu konvertieren wird auf eine Zahl zu ändern. Diese

using (ExcelPackage excelPackage = new ExcelPackage(fi))  
{ 
    ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets[sheetName]; 
    ExcelCellAddress startCell = worksheet.Dimension.Start; 
    ExcelCellAddress endCell = worksheet.Dimension.End; 
    if (endCell.Row > 0) 
    { 
     for (int col = startCell.Column; col <= endCell.Column; col++) 
     { 
      dt.Columns.Add(Convert.ToString(worksheet.Cells[startCell.Row, col].Value)); 
     } 

     for (int row = startCell.Row + 1; row <= endCell.Row; row++) 
     { 
      DataRow dr = dt.NewRow(); 
      int x = 0; 
      for (int col = startCell.Column; col <= endCell.Column; col++)enter code here 
      { 
       dr[x++] = worksheet.Cells[row, col].Value; 
      } 

      dt.Rows.Add(dr); 
     } 
    } 
} 
+0

das Format in Excel zur Verfügung stellen und das gewünschte Format in Datentabelle bekommen. –

+0

In Excel ist das Format MM/TT/JJJJ – keerthi

+0

Was haben Sie in DataTable? –

Antwort

1

Versuchen,

double val= double.Parse("42552"); 
DateTime requiredDate= DateTime.FromOADate(val); 
+0

Diese Antwort ist hilfreich für mich. Danke. – keerthi

0

Bitte einen Versuch, um diese geben, durch das Format der Zellen zu verändern.

Range r = (Excel.Range)worksheetobject.Cells[row,column]; 
r.EntireColumn.NumberFormat = "MM/DD/YYYY"; 

UND kann dies auch tun,

double value = double.Parse(convertedNumber); 
DateTime yourData = DateTime.FromOADate(value); 
0

den Spaltentyp "Text" Set und das Format:

worksheet.Cells[row, col].NumberFormat = "@"; 
Verwandte Themen