PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c# und excel 97


Bubble79
15.03.2004, 15:14
Hallo,

ich möchte aus C# heraus auf ein Excel 97 Dokument (unter Windows NT) zugreifen, nur gelingt das leider nicht.

Auf was ich schon gestoßen bin sind zum Einen die Office XP PIAs (http://www.microsoft.com/downloads/details.aspx?FamilyId=C41BD61E-3060-4F71-A6B4-01FEBA508E52&displaylang=en), die aber erwartungsgemäß mit Excel 97 nicht funktionieren.

Zum anderen hab ich dann anhand eines anderen Beitrags hier folgenden Code versucht:


String connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:\test.xls;Extended Properties=Excel";

newCon = new OleDbConnection(connectionString);

DataSet myDataSet = new DataSet();
OleDbCommand myCommand = new OleDbCommand();
myCommand.Connection = newCon;

OleDbDataAdapter myAdapter = new OleDbDataAdapter();
myAdapter.SelectCommand = myCommand;

myCommand.CommandText = "SELECT * FROM [Worksheet$]";
try
{
newCon.Open();
myAdapter.Fill(myDataSet);
newCon.Close();
}
catch(Exception ex) { MessageBox.Show("Fehler: " + ex.ToString()); }


Bekomme dabei aber immer die OleDbException "Could not find installable ISAM". Stimmt der ConnectionString nicht, oder macht man das anders?

Kann mir jemand sagen wie ich aus C# heraus auf eine Excel 97 Tabelle zugreifen kann? Merci für alle Antworten,
Grüsse Bubble79


Steff
08.04.2004, 09:20
Du musst ein COM-Verweis auf die Bibliothek Microsoft Excel 8.0 Object Library erstellen.

Dann solltest Du damit wie in VBA programmieren können.

Gruss,
Steff

sholliday
28.11.2005, 16:13
Mein Deutsche ist shrecklich, aber Ich versuche.

Du kannst deisen versuchen:
You can try this:


String connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Sales.xls';Extended Properties='Excel 8.0'";


Here is a C# version.



Notice the single quotes around the filename...AND around the Excel 8.0.

There is a space between Data and Source for "Data Source"

There is a space between Excel and 8.0 for "Excel 8.0".

With VB.NET, experiment with the single quotes vs. the """" (to get one double quote).



This code works in C#... (a very bad example for Data Access Code, but good for the connection string info:



String connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\Sales.xls';Extended Properties='Excel 8.0'";

OleDbConnection newCon = new OleDbConnection(connectionString);

DataSet myDataSet = new DataSet();
OleDbCommand myCommand = new OleDbCommand();
myCommand.Connection = newCon;

OleDbDataAdapter myAdapter = new OleDbDataAdapter();
myAdapter.SelectCommand = myCommand;

myCommand.CommandText = "SELECT * FROM [Sheet1$]";
try
{
newCon.Open();
myAdapter.Fill(myDataSet);
newCon.Close();
}
catch (Exception ex)
{
MessageBox.Show (ex.Message );

}