Wenn ich versuche, den Wert vom Typ Datum / Uhrzeit aus der Excel-Tabelle zu lesen '2007-02-19 14:11:45.730'
, wird ein doppelter Wert zurückgegeben. Wenn Sie beispielsweise einen Wert wie diesen lesen möchten, erhalte ich einen doppelten Wert. Außerdem konvertiere ich diesen doppelten Wert mithilfe der Zeitspanne, aber nicht erfolgreich weil ich '2007-02-19 12:00:00 AM'
jetzt nur diesen Wert bekomme, möchte ich genau den gleichen Datum / Uhrzeit-Wert wie der erste. Mein Code lautet wie folgt: -
TimeSpan datefromexcel = new TimeSpan(Convert.ToInt32((range.Cells[rCnt, cCnt] as Excel.Range).Value2), 0, 0, 0);
DateTime inputdate = new DateTime(1900, 1, 1).Add(datefromexcel);
arrrow2[cCnt - 1] = inputdate.ToString();
Bitte helfen Sie !!! Vielen Dank.
c#
excel
office-interop
Pranav
quelle
quelle
Vielleicht könnten Sie versuchen, mit dieser
DateTime.FromOADate
Methode zwischen Excel und .net zu konvertieren.quelle
Lesen des Datetime-Werts aus einer Excel-Tabelle: Versuchen Sie, dass dies funktioniert.
quelle
Value2
ein Boxwert zurückgegebendouble
wird.Oder Sie können einfach OleDbDataAdapter verwenden, um Daten aus Excel abzurufen
quelle
Wenn Ihre Zelle bereits ein echtes Datum ist, verwenden Sie alternativ einfach .Value anstelle von .Value2:
quelle
Value
gibt ein zurück,DateTime
wenn Sie einDateTime
an geschrieben haben,Value
aber ein,double
wenn Sie einDateTime
an geschrieben habenValue2
.Ich hatte eine ähnliche Situation und habe den folgenden Code verwendet, um dies zum Laufen zu bringen.
Hoffe das hilft some1 thx_joxin
quelle
Vielleicht möchten Sie die einfache Funktion ausprobieren, die ich in einem anderen Thread gepostet habe zum Lesen des Datumswerts aus dem Excel-Blatt .
Es nimmt einfach Text aus der Zelle als Eingabe und gibt DateTime als Ausgabe.
Ich würde mich freuen, wenn mein Beispielcode zugunsten der .Net-Entwicklergemeinschaft verbessert würde.
Hier ist der Link für den Thread C #, der das Excel-Datum nicht aus der Tabelle liest
quelle
Eine weitere Option: Wenn der Zelltyp zur Kompilierungszeit unbekannt ist und die Zelle so formatiert ist, dass Datum
Range.Value
ein gewünschtesDateTime
Objekt zurückgibt .quelle