Wie konvertieren von Excel-Werte in datetime-format in C#

Ich bin versucht, extrahieren von Daten aus einem Excel-Arbeitsblatt mithilfe der Excel-Interop. Die Zellen in dem Bereich, der hier enthalten Datum/Uhrzeit-Werte. Ich habe es geschafft die Werte als text, aber wie kann ich die konvertieren dass es sich hierbei um einen numerischen oder einen Datum/Zeit-format, die verwendet werden können in Vergleichsoperationen?

using System;
using Excel = Microsoft.Office.Interop.Excel;
class Program
{
    static void Main(string[] args)
    {
        Excel.Application xlApp;
        Excel.Workbook xlWorkBook;
        Excel.Worksheet xlWorkSheet;
        Excel.Range range;

        string str;
        int rCnt = 0;
        int cCnt = 0;

        xlApp = new Excel.Application();
        xlWorkBook = xlApp.Workbooks.Open("Wind_Speed.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

        range = xlWorkSheet.UsedRange;

        for (rCnt = 1; rCnt <= range.Rows.Count; rCnt++)
        {
            for (cCnt = 1; cCnt <= range.Columns.Count; cCnt++)
            {
                //here I can get a string value... how to make it date/time
                str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Text                                
                Console.WriteLine(str);
                Console.ReadLine();                       
            }
        }

        xlWorkBook.Close(true, null, null);
        xlApp.Quit();

        releaseObject(xlWorkSheet);
        releaseObject(xlWorkBook);
        releaseObject(xlApp);

        Console.ReadLine();
    }
  • Ich fürchte, es ist wirklich unklar, was du fragst. Sind Sie versuchen, zu konvertieren von strings in zahlen? In Zeiten? Etwas anderes? Können Sie nachweisen, dass Sie das problem ohne Excel eingebunden? Im Idealfall posten Sie eine minimale reproduzierbare Beispiel.
  • Wenn Sie konvertieren von Zeichenfolgen in andere Datentypen betrachten Sie dann die verschiedenen Parse Methoden zur Verfügung, zum Beispiel int.Parse(string) / DateTime.Parse(string)
  • Ich bin völlig einverstanden mit @JonSkeet: wir helfen gerne, aber bitte fügen Sie einige Klarheit zu Ihrer Frage. In seinem aktuellen Zustand, es sieht aus wie Sie versuchen, zu extrahieren Date-Wert aus dem string (wenn es so wäre, könnte erreicht werden, indem entweder Parse(), oder TryParse() oder Convert() C# Methoden). Beste Grüße,
  • Die Frage ist vollkommen klar, es ist nur eine X-Y-Frage. Konvertierung von string ist die falsche Antwort, und entfernen Sie Excel aus der Frage entfernt sich die Frage völlig. Konvertieren von Excel - Variant Wert direkt statt über ein string, der die richtige Antwort hier.
  • Es kann Ihnen klar sein - es ist sicherlich nicht klar zu mir...
  • Ich denke, dass OP ' s problem sollte klar sein, um jemand vertraut mit Excel-interop. Ich glaube, ich würde Sie unter Ihnen. Die offensichtlich ESL Englisch-Niveau stehen könnte einige Verbesserungen, und das Codebeispiel ist wahrscheinlich kondensiert ein bisschen, für für einen ersten post, ich denke, das ist weit besser als die meisten.
  • Gut, ich kann nur sagen, dass es mir noch immer unklar. Wir wissen nicht, welche Art von vergleichen, die OP ist auszuführen versucht, oder was die Daten sind. Ich bin froh, dass es dir klar, und hoffentlich verbessern Sie die post, aber es ist wirklich noch unklar für mich (und es ist Jahre her, seit ich getan habe, alle Excel-interop...)
  • Dein edit hilft, wenn es richtig ist - aber "Der Zellen im verwendeten Bereich hier enthalten Datum/Zeit-Wert" zu sein scheint, abgeleitet nur aus dem Titel. Ich bin mir nicht sicher, ich würde wollen, dass diese Annahme, auch wenn es korrekt sein kann.
  • Es ist die logische Schlussfolgerung und die Frage und Antwort machen Sinn und haben bleibenden Wert in diesem Zustand. Vereinbart, dass die OP kann versuchen, zu konvertieren einen string wie செவ்வாய்க்கிழமை, மதியம் நான்கு கடந்த கால் நவம்பர் 23. in eine DateTime Wert, und zugegeben, dass wäre auch eine gute Frage, aber ich denke, dass OP und SO würde serviert werden, auch durch OP-post, als eine neue Frage.
  • Hallo Jungs, Erstmal vielen Dank für deine schnelle Hilfe. Mein Hauptziel in meiner Frage, ist die Bedingung schreiben, dass vergleichen zwischen den Daten der Zeit, die ich extrahieren aus Excel in Spalte "Zeit" und die Zeitspanne werde ich entscheiden, (wie z.B.: 06:00 - 16:30)

InformationsquelleAutor Idanovich | 2016-03-02
Schreibe einen Kommentar