Avatar billede kasseper Nybegynder
18. juli 2006 - 08:31 Der er 8 kommentarer og
1 løsning

Hjælp til læsning af excel fil

Hej

Jeg er ikke helt med efter jeg skiftede min VB 6.0 ud med .net.

Jeg sidder og forsøger mig at læse og skrive til et excel ark.
Det er vigtigt at det virker med gamle versioner af excel, så er der nogen der kan give mig et hint.

Er gået lidt sur i forskellen mellem en Range og Cells.

Jeg har fundet frem til at jeg snildt kan skrive til de enkelte celler, no probs, men når jeg så skal læse dem igen, så er der problemer. Når jeg så f.eks. Laver MsgBox(bla.bla.Cells(2,2)), så for jeg at vide at jeg ikke kan konvertere en Range til en Streng. fair nok, men nu var det jo ikke en range jeg bad om...

Nogen må gi mig et link eller en kort lektion.

Og en anden ting, hvordan laver jeg quit på den excel application jeg har fået created ?, i gamle dage kunne man kalde close eller quit eller noget...?

Men det er vist først efter at jeg har Add'ed COM object Excel 11.0 object lib.( Er det det jeg skal bruge( og er det så også bagud komp), eller skal jeg vælge en anden), og hvorfor nu det....


Det var mange spørgsmål i et, så jeg skyder en del point af, det er sikkert ikke så svært, men nogen må lige følge mig lidt på vej, med nogle svar.
Avatar billede verakso Nybegynder
18. juli 2006 - 12:47 #1
Det var en masse spørgsmål :)

På samme måde som Excel er bagud kompatibel, så vil en applikation bygget på .NET og Excel 2003 også kunne åbne gamle Excel ark, men jeg fornemmer at det ikke er det du vil.

Hvis du bygger en app på .NET og Excel 2003 Interop, så fordrer det også at en evt. bruger har .NET runtime og Excel 2003.

Mht. til link så er der en del eksempler hos MS eks. http://msdn2.microsoft.com/en-us/library/891ydsx9.aspx

Personligt opgav jeg dette, og brugte OLEDB til at læse fra Excel i stedet
Avatar billede kasseper Nybegynder
18. juli 2006 - 20:28 #2
Og kan du gi et eksempel med OLEDB ?
Jeg er sådan set græsk katolsk med hvordan jeg for fat i data, bare jeg for dem ;)
Avatar billede verakso Nybegynder
24. juli 2006 - 14:08 #3
Her er et eksempel der måske kan hjælpe dig på vej:
http://www.codeproject.com/useritems/microsoftexcelclient.asp
Avatar billede kasseper Nybegynder
06. august 2006 - 22:34 #4
Hej Verasko

Jeg har benyttet mig af .net metoden og det virkede fint.
Ihvertfald på den maskine jeg har instl. det på.
Men når jeg har pakket programmet, og instl. det på en anden maskine, så kommer der run-time fejl, noget med en JIT fejl...
Og det er netop når den forsøger at læse fra excel arket.


Jeg har en svag anelse af at det han noget at gøre med måde jeg læser fra excel på. Så mit spørgsmål til dig er, er OLEDB måden hvis jeg skal være uafhængig af excel version, sprog etc.. ?
Og hvordan rammer jeg en enkelt celle via OLEDB og en select ?'

I dit eksempel, læses alt fra arket, men jeg har brug for at hente data der præcis står i en enkelt celle....
Avatar billede verakso Nybegynder
07. august 2006 - 10:53 #5
Først og fremmest, så aktiver JIT debuggeren, det skulle gerne stå i den fejl du får når du kærer programmet.

Jeg har sekv haft en hel del bøvl med at på programmer der blot er en skal for andre programmer til at virkke ordentligt (altså andre steder en ens egen maskine hvor man udvikler)

En af årasagerne er sikkeheden. Noget der fungerer lokalt, virker ikke på en anden maskine eller over netværket. Her skal man ind og rodde med nogle rettigheder (http://www.eksperten.dk/spm/722138).

Det næste problem jeg så er rendt ind i er, at programmer (ActiveX) der fungerer fint på en XP, åbenbart ikke virker på vores 2000 maskiner, til trods for at det er samme .NET framework og ActiveX. Så igen er der noget rettigheder jeg skal have kigget på.

Og i bund og grund tror jeg at det er det samme problem du er rendt ind i, men det kan jo mere tydligt pin-pointes, når du kan læse hvilken run-time fejl det er.
Avatar billede kasseper Nybegynder
07. august 2006 - 12:27 #6
Hvordan aktivere jeg JIT debuggeren på en anden maskine, som ikke er min udviklermaskine.
Avatar billede verakso Nybegynder
08. august 2006 - 09:52 #7
Jeg mener at det står i dialogboksen der fremkommer, med at JIT ikke er installeret ;)
Avatar billede kasseper Nybegynder
27. august 2006 - 23:55 #8
Hep hey.

Jeg har nu langt om længe fået den korrekte fejlbesked :

Specified cast not valid
at System.MulticastDelegate.GetInvocationList()

Og den opstår i denne del af koden :

+++++++++++++++++++++++++++++
Dim App As Excel.Application
Dim x1 As Excel.Workbook
Dim sheet As Excel.Worksheet
Dim range As Excel.Range

App = CreateObject("Excel.Application")
x1 = App.Workbooks.Open(CurDir() + "\configuration.xls")
App.Visible = False
sheet = x1.Application.Worksheets(1)
++++++++++++++++++++++++++++++

Håber at det siger nogen noget...
Avatar billede kasseper Nybegynder
04. september 2007 - 23:01 #9
det sagde ikke nogen noget....lukkes.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester