wie man Spalte aus Excel-Tabelle,wenn Excel-Blatt Namen enthalten Leerzeichen, d.h."Person-Details"
hier i m mit ADO.Net für die Verbindung zu Excel-Datei mit connectionString angegeben, dass die Arbeit gut, meine einzige Sorge ist nur wenn Blatt-name-space-Charakter als die nicht zurück Spaltennamen form entsprechende Blatt.
mein code :
if (extension == ".xls")
{
connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath("~\\ExcelUpload\\Excelsheets\\temp.xls") + ";" +
@"Extended Properties=" + "\"Excel 8.0;HDR=YES;\"";
}
else if (extension == ".xlsx")
{
connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + Server.MapPath("~\\ExcelUpload\\Excelsheets\\temp.xlsx") + ";" +
@"Extended Properties=" + "\"Excel 12.0;HDR=YES;\"";
}
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = connectionString;
connection.Open();
DataTable dt;
String[] restrection = { null, null, sheetName + "$", null };
dt = connection.GetSchema("Columns", restrection);
wie können wir also paas excelsheet name hat Leerzeichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht können Sie so etwas wie dieses:
Können Sie sehen, wie ich bin immer aus den Blattnamen. (
try..catch
Blöcke wurden weggelassen)Versuchen
Also, wenn Sie ein Arbeitsblatt TEST-ARBEITSBLATT, wurde es " TEST-ARBEITSBLATT,$'
Es entgeht mir, warum wir haben, zu Folgen, wie WIERD Namenskonventionen
Sollte kein Problem mit dem Dateinamen, der Leerzeichen enthält. Versuchen Sie, um zu überprüfen, ob Datei vorhanden ist, bevor Sie Lesen:
Den code...
...fügt ein '$' auf den Namen des Blattes. Vielleicht den Namen des Blattes muss abgegrenzt werden, vielleicht...
...oder...
...?
Versuchen zu ersetzen:
mit dabei:
Gleiche für Excel 12.0. In meinem Fall, den Fall zu lösen 🙂