Domino 9 und frühere Versionen > Entwicklung

export to excel

(1/3) > >>

luna:
hallo,

ich hab mal vor laengerer zeit irgendwo ein script gefunden, das den view einfach und schnell ins excel exportiert. das ist sehr schoen schnell und einfach.

ich habe es in einer datenbank in benutzung, da funzt es einwandfrei. in der naechsten allerdings krieg ich eine fehlermeldung:
type mismatch
mittendrin und er bricht ab.

hier das script:
Sub Click(Source As Button)
     Dim Session As New NotesSession
     Dim db As NotesDatabase
     Dim sourceview As NotesView
     Dim sourcedoc As NotesDocument
     Dim dataview As NotesView
     Dim datadoc As NotesDocument
     Dim maxcols As Integer
     Dim ws As New Notesuiworkspace
     Dim uiview As notesuiview
     Dim cols As Integer
     Dim rows As Integer
     Dim getfield As Variant
     
     Set db = session.CurrentDatabase
     Set uiview=ws.currentview
     Set dataview = uiview.view
     Dim xlApp As Variant
     Dim xlsheet As Variant
     
     Set xlApp = CreateObject("Excel.Application")
     xlApp.StatusBar = "Import vorbereiten..."
     xlApp.Visible = True
     xlApp.Workbooks.Add
     xlApp.ReferenceStyle = 3
     Set xlsheet = xlApp.Workbooks(1).Worksheets(1)
     xlsheet.Name = uiview.viewname
     xlApp.StatusBar = "Die Überschriften werden erstellt..."
     cols=1
     Forall X In dataview.Columns
           xlsheet.Cells(1,cols).Value =X.title
           cols=cols+1
     End Forall
     
     xlApp.StatusBar = "Überschriften wurden erstellt...fertig!"
     xlApp.StatusBar = "Der Import wird vorbereitet..."
     xlApp.StatusBar = "Die Daten werden importiert..."
     Set datadoc = dataview.getfirstdocument
     cols=1
     rows=2
     maxcols= dataview.columncount
     While Not (datadoc Is Nothing)
           For cols=0 To maxcols-1
                 getfield = Cstr(datadoc.ColumnValues( cols ))
                 xlsheet.Cells(rows,cols+1).Value = getfield  
           Next
           rows=rows+1
           cols=0
           Set datadoc = dataview.getnextdocument(datadoc)  
     Wend
     xlApp.StatusBar = "Import beendet! ... Formatieren starten"
     
     xlApp.Rows("1:1").Select
     xlApp.Selection.Font.Bold = True
     xlApp.Range(xlsheet.Cells(1,1), xlsheet.Cells(1,maxcols)).Select
     With xlApp.Selection.Interior
           .ColorIndex = 1' Spaltenkopf Farbe
           .Pattern = 0  
           .PatternColorIndex =0
     End With
     xlApp.StatusBar = "Titel formatiert"
     xlApp.Rows("1:1").Select 'Zeile 1 bis 1 ist  
     xlApp.Selection.Font.Bold = True ' Fett
     xlApp.Range(xlsheet.Cells(1,1), xlsheet.Cells(rows,maxcols)).Select
     xlApp.Selection.Font.Name = "Arial" 'Schrift Art
     xlApp.Selection.Font.Size = 10'Schriftgröße der Excel Tab
     xlApp.Selection.Columns.AutoFit
     With xlApp.Worksheets(1)
           .PageSetup.Orientation = 2
           .PageSetup.centerheader = "inventory list" ' Tabellen Überschrift
           .Pagesetup.RightFooter = "Seite: &P" & Chr$(13) & "Date: &D"
' Arbeiten Sie mit einer Englischen Excelversion müssen  
'sie bei Seite: &P verwenden  
           .Pagesetup.CenterFooter = ""
     End With
     xlApp.ReferenceStyle = 1
'Wo möchten Sie den Courser hinsetzen hier A1
     
     xlApp.Range("A1").Select
     
     xlApp.StatusBar = "Fertig!"
End Sub


kann es sein, dass da ein fehler in meiner datenbank ist? oder eher, weil in der view 547 dokumente drin sind?

ich wuerde das soooooo gerne hernehmen ! kann mir jemand helfen, das hinzukriegen? kenn mich mit script 0,0 aus.

vielen dank und gruss,
daniela

p.s.: habs grad noch in einer anderen DB probiert: gleiche fehlermeldung, schon nach 5 zeilen. in dieser DB sind aber nur 62 zeilen drin.
irgendwas ist da falsch. ich kanns nicht finden.

Linus:
Ich vermute, daß es an deinen Daten liegt - daß irgendwelche Felder nicht so gefüllt sind wie erwartet.
Schalte doch mal den Debugger an, dann kriegst du raus, in welcher Zeile der Fehler auftritt.

luna:
hallo linus,

mach ich gerne, ich wuerde ja gerne rausfinden, was da warum nicht klappt.

allerdings nur, wenn du mir auch sagst, wie man so einen debugger einschalten tut!  :-[

danke und gruss,
daniela

eknori (retired):
Ömmm, wenn ich mir das so recht ansehe, ist das Script von mir. Ich schau mir das mal an.

eknori

eknori (retired):
Hier habe ich eine aktuellere version für dich. Ist auch noch flexibler ( Copy and Paste und läuft in jeder Datenbank ohne Anpassung )

http://www.atnotes.de/cgi-bin/yabb/YaBB.pl?board=Downloads;action=display;num=1014050197

eknori

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln