Toon posts:

[C#] Excel sheet uitlezen met OLEDB

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een excel document aangeleverd gekregen dat wil uitlezen met behulp van C#. De code voor het uitlezen van excel sheets was niet zo moeilijk te krijgen, maar helaas kan ik niet het aangeleverde excel document uitlezen.

Dit excel document genereert de sheets pas wanneer excel is opgestart met behulp van macro's. Indien macro's uitgeschakeld staan is het excel document niet te lezen, maar wordt een waarschuwing gegeven dat het beveiligingsniveau van macro's te hoog staat.

Het probleem is dat ik wil het excel document niet wil openen, maar wel de gegevens uitlezen. Heeft iemand hier ervaring mee?

  • PhysicsRules
  • Registratie: Februari 2002
  • Laatst online: 31-03 07:26

PhysicsRules

Dux: Linux voor Eenden

als de tabel via code gegenereerd wordt zal die code toch echt eerst moeten draaien. Dit kun je natuurlijk automatiseren.

Verwijderd

Topicstarter
Is het dan alleen mogelijk om het document eerst te openen met Microsoft.Office.Interop en kan dit dan eventueel onzichtbaar?

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:04

TeeDee

CQB 241

Je kan je Excel file ook als Datasource gebruiken.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System.Data;
using System.Data.OleDb;
... 
String sConnectionString = 
"Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + [Your Excel File Name Here] + ";" +
"Extended Properties=Excel 8.0;";

OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet objDataset1 = new DataSet();
objAdapter1.Fill(objDataset1);
objConn.Close(); 

Volgens mij geeft dit je een duw in de goede richting. Het enige wat je imho nog moet checken is of de macro's hun werk al gedaan hebben.

[ Voor 3% gewijzigd door TeeDee op 10-01-2007 11:49 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Ik zou via interop de Excel-bestanden uitlezen. Dan heb je volledige controle over je sheets, en bovendien is het een stuk robuuster.

Zie ook hier: http://gathering.tweakers.net/forum/list_messages/1185151

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 14:04

TeeDee

CQB 241

MrBucket schreef op woensdag 10 januari 2007 @ 12:02:
Ik zou via interop de Excel-bestanden uitlezen. Dan heb je volledige controle over je sheets, en bovendien is het een stuk robuuster.

Zie ook hier: http://gathering.tweakers.net/forum/list_messages/1185151
Natuurlijk, alleen TS heeft het over OleDB ;)

Mijn ervaring met Interop, Excel en C# is ronduit dramatisch. Het is allemaal wel mogelijk, alleen (zo zeggen de concullega's) is het met VB.net net ietwat gemakkelijker.

Heart..pumps blood.Has nothing to do with emotion! Bored

Pagina: 1