Domino 9 und frühere Versionen > ND6: Entwicklung

Frage zu CreateObject( "Excel.Application")

(1/2) > >>

Glombi:
Ich habe mir aus dem Sandkasten ein kleines Programm gesaugt und modifiziert, mit dem ich Daten aus einer Excel Datei lesen kann.

Zu der Stelle CreateObject( "Excel.Application") habe ich eine Frage:
Im Original stand
Set Excel = CreateObject( "Excel.Application.9" ) ' for windows2000
Set Excel = CreateObject( "Excel.Application.8" ) ' for windows95

Ich habe Win XP, da geht es nur mit CreateObject( "Excel.Application").
Läuft das auch unter Win 2000? Oder muss ich da .9 verwenden?

Wenn das BS-abhängig ist: Kann ich per Script auslesen, ob Win 2000 oder XP verwendet wird. Wahrscheinlich gibt es irgendeine DLL, die ich aufrufen muss. Aber welche???
session.Platform liefert ja nur Windows 32.


Hier der komplette Agent:

Sub Initialize
   
   On Error Goto ErrorHandling
   
   Dim Excel As Variant
   Dim xlWorkbook As Variant
   Dim xlSheet As Variant
   
   Dim xlFilename As String   
   Dim col_val As String   
   Dim row As Integer
   Dim written As Integer
   
   xlFilename = "e:\kst1.xls"
   
   col_val = "dummy"
   
   ' Row number to import
   records = 10
   
   'Erstelle Excel-Objekt
   Set Excel = CreateObject( "Excel.Application")
%REM   
      Set Excel = CreateObject( "Excel.Application.9" ) ' for windows2000
      Set Excel = CreateObject( "Excel.Application.8" ) ' for windows95
%ENDREM   
   
   'Excel.Visible = False ' Don't display the Excel window
   Excel.Workbooks.Open xlFilename ' Open the Excel file
   Set xlWorkbook = Excel.ActiveWorkbook
   Set xlSheet = xlWorkbook.ActiveSheet
   
     ' Cycle through the rows of the Excel file, pulling the data over to Notes   
   row = 0
   written = 0
   
   Do While col_val <> ""
      With xlSheet
         row = row + 1               
         If row  > 1 Then
            col_val = .Cells( row, 4 ).Value
            Print col_val
         End If
         written = written + 1         
      End With
   Loop
   
   'Excel schliessen
   xlWorkbook.Close
   Excel.Quit
   
   Set Excel = Nothing ' Free the memory that we'd used
   
   Exit Sub
   
   '########### ERROR HANDLING ############   
ErrorHandling:
   Messagebox "Check Excel file location or SW Version or View Name or Form Name" ,MB_OK+MB_ICONINFORMATION,"Warning ! "
   Print " " ' Clear the status line   
   Exit Sub   
   
End Sub


Danke für jede Antwort!

Andreas

Glombi:
CreateObject( "Excel.Application") funktioniert auch unter Windows 2000.
Damit wäre das Problem gelöst.

MartinG:
Ich glaube die Erklärung ist falsch - das ganze bezieht sich vermutlich eher auf die Excel Version

Excel 11 = Excel 2003
10 = Excel XP
9 = Excel 2000
8 = Excel 97
7 = Excel 95
....

Gruss
Martin

Semeaphoros:
Richtig, nur ist die Angabe im Sandkasten bogus. Die Zahl nach Application bezieht sich nicht auf die Windows-Version, sondern auf die Excel-Version, so wie das Martin eben auch aufgeführt hat.

Verwendet man "Excel.Application", so wird die zuletzt installierte Excel-Version verwendet, welche auch immer das ist.

Lässt sich bei MS-Support an verschiedenen Stellen nachlesen

Glombi:
Falls also die Excel-Datei mit der Version X erstellt wird und ein anderer User, der den Scriptagent ausführt, auch die Version X hat, sollte also CreateObject( "Excel.Application") funktionieren.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln