[excel/vb.net] Data inlezen, maar sheetnaam niet bekend

Pagina: 1
Acties:

  • Blizard
  • Registratie: September 2001
  • Niet online
code:
1
2
3
4
5
6
7
8
    Try
      da = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", cn)
      ds = New System.Data.DataSet
      da.Fill(DS, "Namen")
      DataGrid1.SetDataBinding(DS, "Namen")
    Catch ex As Exception
      MessageBox.Show("Er ging iets fout bij het inlezen van het bestand")
    End Try


Deze code gaat goed, tot de naam van het sheet bv sheet2 is. Het probleem is echter dat de gebruiker werkbladen van excel gaat leveren waarvan niet opvoorhand geweten is wat de sheetname is. Kan ik op één of andere manier gewoon "select * from 1" ofzo doen ? Waar 1 dan het eerste sheet is ? (heb de search gebruikt). Dit alles in vb.NET

  • Blizard
  • Registratie: September 2001
  • Niet online
*klein schopje*

Ben ik verplicht de gebruiker te vragen wat zijn sheet-naam is ? Of is er toch een manier om te zeggen : neem het eerste blad ?!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 07:58

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Blizard
  • Registratie: September 2001
  • Niet online
Prachtig hoe jij al die dingen vindt waar ik dan een paar uur naar zoek :(
Ook enig idee hoe ik vb kan doen : SELECT KolomA, KolomB from sheet ? Waar KolomA ... variabel is ?

Of kan ik beter op de oude manier excel-bestanden inlezen (=rij per rij inlezen ... ?)

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 07:58

gorgi_19

Kruimeltjes zijn weer op :9

Gewoon Select * FROM gebruiken, lijkt me?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Blizard
  • Registratie: September 2001
  • Niet online
gorgi_19 schreef op 16 februari 2004 @ 17:36:
Gewoon Select * FROM gebruiken, lijkt me?
Komen alle kolommen in m'n dataset, terwijl ik enkel A, B en C wil ... (A, 1, F1 .. geen enkele lukt).

Bijkomend probleem over m'n eerste vraag is hetvolgende : als de excel-file ook 'ranges' bevat die een naam hebben gekregen gaat
code:
1
2
3
Dim ExcelSheets As DataTable = cnExcel.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, 
New Object() {Nothing, Nothing, Nothing, "TABLE"})
strSheetName = ExcelSheets.Rows(0)("TABLE_NAME").ToString

strSheetName hier de waarde krijgen van de range, terwijl ik het blad wil :(
Pagina: 1