Autor Thema: export to excel  (Gelesen 4769 mal)

Offline luna

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.362
  • Geschlecht: Weiblich
  • mein name ist hase...
    • sixtnix homepage
export to excel
« am: 29.05.02 - 16:57:28 »
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.
im moment in mutterschutz

Offline Linus

  • Frischling
  • *
  • Beiträge: 46
  • Geschlecht: Weiblich
  • Notes ... ähm ... is'n das?
Re: export to excel
« Antwort #1 am: 29.05.02 - 17:25:15 »
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.
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline luna

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.362
  • Geschlecht: Weiblich
  • mein name ist hase...
    • sixtnix homepage
Re: export to excel
« Antwort #2 am: 29.05.02 - 17:28:47 »
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
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
im moment in mutterschutz

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: export to excel
« Antwort #3 am: 29.05.02 - 17:37:09 »
Ömmm, wenn ich mir das so recht ansehe, ist das Script von mir. Ich schau mir das mal an.

eknori
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: export to excel
« Antwort #4 am: 29.05.02 - 17:51:34 »
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
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re: export to excel
« Antwort #5 am: 30.05.02 - 16:08:57 »
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline luna

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.362
  • Geschlecht: Weiblich
  • mein name ist hase...
    • sixtnix homepage
Re: export to excel
« Antwort #6 am: 31.05.02 - 16:19:08 »
Zitat
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



ich sag nur: W O W

danke ulrich, nicht nur, dass es jetzt in jeder datenbank läuft, sondern es laesst auch noch den view aussuchen !!! ich bin sowas von begeistert !!!

vielen vielen dank, das ist sehr hilfreich fuer mich (ich hab leider user, die muessen halt alles im excel haben, wahrscheinlich wegen weiterschicken oder auch im grafiken zu erstellen).

vielen lieben dank, gruss,
daniela  ;D ;D ;D

danke auch Hip Slu, aber ich bleibe jetzt bei dem Tool von eknori, weil es läuft ja. und sowas von gut !
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
im moment in mutterschutz

Offline alexB

  • Junior Mitglied
  • **
  • Beiträge: 59
Re: export to excel
« Antwort #7 am: 02.11.06 - 10:26:16 »
Hallo,

ich habe das Skript ein bischen umgemodelt.
Es werden jetzt nur die in der Ansicht markierten Dokumente exportiert
und zwar in der Reigenfolge, wie sie in der Ansicht stehen.

Gruß, Alex


Sub Click(Source As Button)
   Dim Session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim sourceview As NotesView
   Dim sourcedoc As NotesDocument
   Dim dataview As NotesView
   Dim datadoc As NotesDocument
   Dim docSelected 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
   Dim xlApp As Variant
   Dim xlsheet As Variant
   
   Set db = session.CurrentDatabase
   Set collection = db.UnprocessedDocuments   
   
   Antwort% = Messagebox("Es werden " & collection.Count & " Dokumente exportiert. Fortfahren?", 33 , "Export")   
   If Antwort% = 2 Then    Exit Sub
   
   Set uiview=ws.currentview
   Set dataview = uiview.view
   
   'Excel für Import vorbereiten und Spaltenüberschriften setzen
   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)      
      Set docSelected = collection.GetDocument(datadoc) 'Überprüfen, ob Dokument in der Ansicht markiert ist
      If Not docSelected Is Nothing Then 'Wenn Dokument  in der Ansicht markiert ist, dann exportieren
         For cols=0 To maxcols-1 'Alle Spalten durchlaufen
            getfield = Cstr(datadoc.ColumnValues( cols ))
            xlsheet.Cells(rows,cols+1).Value = getfield                      
         Next      
         rows=rows+1
      End If
      cols=0
      Set datadoc = dataview.GetNextDocument(datadoc)             
   Wend
   
   'Excelblatt formatieren
   xlApp.StatusBar = "Import beendet! ... Formatieren starten"
   xlApp.Rows("1:1").Select
   Stop
   xlApp.Selection.Font.Bold = True
   xlApp.Range(xlsheet.Cells(1,1), xlsheet.Cells(1,maxcols)).Select
   With xlApp.Selection.Interior
      .ColorIndex = 0' Spaltenkopf Farbe
      .Pattern = 17
      .PatternColorIndex =0
   End With
   xlApp.StatusBar = "Titel formatiert"
   xlApp.Rows("1:1").Select 'Zeile 1 bis 1 ist
   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 = "ATNOTES" ' Tabellen Überschrift
      .Pagesetup.RightFooter = "Seite: &S" & 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

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: export to excel
« Antwort #8 am: 06.11.06 - 08:17:39 »
... 2 kleine Anmerkungen seien erlaubt:

rows sollte als Long deklariert werden, da es in einer Excel-Tabelle bis zu 64.000 Zeilen geben kann. Demzufolge sollte es auch abgefangen werden - eventuell ein weiteres Sheet beginnen...

Option Explicit bringt zutage, daß die Variable "Antwort" nicht deklariert wurde...

Gruß Toni
Grüßle Toni :)

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: export to excel
« Antwort #9 am: 06.11.06 - 09:04:49 »
Eigentlich fehlt mir hier auch noch eine vernüftige Fehlerbehandlung.

On Error Goto....

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline ewald

  • Aktives Mitglied
  • ***
  • Beiträge: 140
  • Geschlecht: Männlich
Re: export to excel
« Antwort #10 am: 26.04.07 - 23:05:59 »
Hallo,

hab beim Stöbern hier im Forum das gefunden:

Zitat
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

Leider geht de Link nicht mehr :-(

Gibts diese Version von eknori oder einen neuere irgendwo?

Grüsse Ewald

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz