Wie verhindern Sie, dass führende Nullen entfernt werden, wenn Sie ein Excel-Dokument mit c# importieren?

StackOverflow https://stackoverflow.com/questions/22879

  •  09-06-2019
  •  | 
  •  

Frage

Ich kann problemlos eine Verbindung zu einer Excel-Datei herstellen und diese lesen.Aber wie verhindern Sie beim Importieren von Daten wie Postleitzahlen mit führenden Nullen, dass Excel den Datentyp errät und dabei führende Nullen entfernt?

War es hilfreich?

Lösung

Ich glaube, Sie müssen die Option in Ihrer Verbindungszeichenfolge festlegen, um den Textimport zu erzwingen, anstatt ihn automatisch zu erkennen.

Provider=Microsoft.ACE.OLEDB.12.0;
    Data Source=c:\path\to\myfile.xlsx;
    Extended Properties=\"Excel 12.0 Xml;IMEX=1\";

Ihr Kilometerstand kann je nach der von Ihnen installierten Version variieren.Die erweiterte Eigenschaft IMEX=1 weist Excel an, gemischte Daten als Text zu behandeln.

Andere Tipps

Präfix mit '

Wenn Sie dem Inhalt der Zelle das Präfix ' voranstellen, wird Excel dazu gezwungen, ihn als Text und nicht als Zahl zu sehen.Das ' wird in Excel nicht angezeigt.

Es gibt einen Registry-Hack, der Excel dazu zwingen kann, beim Lesen einer Spalte mehr als die ersten 8 Zeilen zu lesen, um den Typ zu bestimmen:

Ändern

HKLM\Software\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows 

0 sein, um alle Zeilen zu lesen, oder eine andere Zahl, um diese Anzahl an Zeilen festzulegen.

Nicht, dass dies einen leichten Leistungseinbruch zur Folge hätte.

Ich denke, der Weg dazu bestünde darin, die Excel-Quelldatei so zu formatieren, dass die Spalte als Text statt als Allgemein formatiert ist.Wählen Sie die gesamte Spalte aus, klicken Sie mit der rechten Maustaste und wählen Sie Formatzellen aus. Wählen Sie Text aus der Liste der Optionen aus.

Ich denke, das würde explizit definieren, dass der Spalteninhalt Text ist und als solcher behandelt werden sollte.

Lassen Sie mich wissen, ob das funktioniert.

Das Speichern der Datei als tabulatorgetrennte Textdatei hat ebenfalls gut funktioniert.

--- Alt leider können wir uns nicht auf die Spalten des Excel-Dokuments verlassen, um in einem bestimmten Format zu bleiben, da die Benutzer regelmäßig Daten in sie einfügen.Ich möchte nicht, dass die App abstürzt, wenn wir für eine Spalte auf einen bestimmten Datentyp angewiesen sind.

Das Präfix „ würde funktionieren. Gibt es eine vernünftige Möglichkeit, dies programmgesteuert zu tun, wenn die Daten bereits im Excel-Dokument vorhanden sind?

Wert senden 00022556 als '=" 00022556"' vom SQL-Server ist eine hervorragende Möglichkeit, das Problem der führenden Nullen zu lösen

Fügen Sie „ “ vor Ihrer Zeichenfolge hinzu.Dadurch wird die Zeichenfolge in einem neuen Tab angezeigt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top