2009-05-05 10 views
2

Ich verwende OLEDB, um Excel-Tabelle mit C# zu lesen. In diesem Spaltenkopf ist Name "Sr.No." in meinem "Sheet1". Wenn ich Excel-Sheet-Daten in meine Datatable hole, erhalte ich "Sr # No #" als Spaltenüberschriftsnamen anstelle des ursprünglichen. Kannst du mir bitte sagen, warum es so ist? Und was ist die Lösung für dasselbe?Problem beim Lesen der Excel-Tabelle mit Sonderzeichen in C#

Danke.

Antwort

1

googeln schlägt um, dass dies ein inhärentes Merkmal von OLEDB, anstatt etwas mit Excel zu tun ist - es scheint einfach nicht Perioden wie in Spaltennamen (.).

Meine Vorschläge würden entweder damit umgehen - es scheint ein deterministischer Ersatz von .s mit #s zu sein - oder wenn möglich, alternative Methoden zum Lesen von Excel-Daten aus C# verwenden (diese Seite nach Alternativen durchsuchen).

+0

Ja! Wenn Sie OLEDB verwenden, behandeln Sie die Excel-Datei wie eine Datenbanktabelle. Es gelten die Regeln für Datenbanken (nur OLEDB-Tabellen). Wie AakashM sagte, müssen Sie sich mit dem Ersetzen in Code nach dem Lesen von oledb beschäftigen oder durch eine andere Methode zum Lesen der Daten ersetzen. –

3

Nach einigen Tests habe ich herausgefunden, dass OleDB die folgenden Zeichen konvertiert:

. wird #

! wird _

`wird _

[(

wird] wird)

Alle anderen Zeichen richtig gelesen. Hoffe, das hilft jemandem.

Mit freundlichen Grüßen.

+0

funktioniert wie ein Charme! Vielen Dank. –