2016-04-05 5 views
0

Ich benutze Microsoft.Office.Interop.Excel, um Daten aus Excel zu lesen.C# - Erhalte exakte Daten von Excel ohne Format

Application excel = new Application(); 
Workbook wb = excel.Workbooks.Open("/sample.xlsx"); 
Worksheet sheet = wb.Worksheets["Table 1"]; 

Range range = (Range)sheet.get_Range("A" + 1, "A" + 1); 
String value = Convert.ToString(range.Cells[1].Value); 

Spalt A1 = "01" und meine Ausgabe "1"

Wie Rohdaten ohne Format von dieser Zelle (meine erwartete Ausgabe ist "01") zu bekommen? Auch dieselbe Frage mit der Spalte, die das Datumsformat 'MM/TT/JJ' hat.

+0

Ihr Code funktioniert für mich, wenn ich die Zelle formatieren, um "Text" in Excel einzugeben. –

Antwort

0

Ich denke, das Problem ist nicht mit dem Leser, Ihr Excel-Blatt muss Spalten als Zahl formatiert sein. Bitte formatieren Sie Ihre Spalte in die Textspalte. wenn möglich.

und für die Spalten als Datum Zeit formatiert ist, können Sie das Datum analysieren und formatieren Sie es so, wie Sie https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

enter image description here

1

Sie müssen verwenden, um Text beziehen möchten:

String value = Convert.ToString(range.Cells[1].Text); 

.Text gibt Ihnen eine Zeichenfolge, die darstellt, was auf dem Bildschirm für die Zelle angezeigt wird. .Text verwendet, ist in der Regel eine schlechte Idee, weil Sie ####

.Value2 gibt Ihnen den zugrunde liegenden Wert der Zelle erhalten könnte (könnte leer sein, string, Fehler, die Zahl (double) oder boolean)

.Value gibt Ihnen das gleiche wie .Wert2, außer wenn die Zelle als Währung oder Datum formatiert wurde, gibt es Ihnen eine VBA-Währung (die Dezimalstellen beschneiden kann) oder VBA-Datum.

Verwandte Themen