ich die OleDbConnection-Klasse bin mit zum Abrufen von Daten aus einer Excel-Arbeitsmappe 2000/2003: esExcel-Zelle-Werte werden durch OLEDB-Provider abgeschnitten
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + filename + ";" +
"Extended Properties=\"Excel 8.0;IMEX=1\";";
OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();
// code to get table name from schema omitted
var dataAdapter = new OleDbDataAdapter(string.Format("SELECT * FROM [{0}]", name),connection);
var myDataSet = new DataSet();
dataAdapter.Fill(myDataSet, "ExcelInfo");
Nun stellt sich heraus, dass die Zellen in dem Arbeitsblatt mit einer Länge größer als 255 Zeichen werden abgeschnitten. Ist das eine Einschränkung im Microsoft.Jet.OLEDB-Provider, oder kann ich etwas dagegen tun?
Jeder?
Dank. Es ist eine etwas hässliche Lösung, da mein Installer die Registrierung des Benutzers ändern muss, aber ich gehe davon aus, dass es funktionieren wird. Solange ein Administrator das Installationsprogramm ausführt. –
Ich verstehe nicht, Microsofts Vorschlag hier/wenn Sie es in 16 ändern, nicht nur die ersten 16 Zeilen überprüfen? – leora
@ooo Wenn Sie es in 0 ändern, werden alle Zeilen gescannt. Seien Sie jedoch vorsichtig, da dies bei größeren Tabellen Auswirkungen auf die Leistung haben kann. – rmoore