CALC: Dateien eines Ordners auswerten

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: CALC: Dateien eines Ordners auswerten

Re: CALC: Dateien eines Ordners auswerten

von style2104 » Fr, 09.11.2012 13:21

Hi,

Vielen Dank schon mal für die Mühe die du dir gibst.

Wenn ich oben im Explorer die Adresse kopiere kommt das hier:
\\DISKSTATION\Geschäft\GESCHAEFT\datum\5.11

Sollte also passen.

Wenn ich aber in deinem Dokument das Datum eingebe, dann meine Eingabe nochmals per Mausklick auswähle
und im Anschluss auf die Schaltfläche klicke passiert leider gar nichts.

Irgendwas mach ich Falsch. Muss ich die Makros noch irgendwo einbetten?

Danke Werner

Re: CALC: Dateien eines Ordners auswerten

von Karolus » Fr, 09.11.2012 09:31

Hallo

Noch ein paar kleine Anpassungen, damits hoffentlich auch unter Windows läuft:

Code: Alles auswählen

from glob import glob
import uno



url_path = uno.systemPathToFileUrl
context = XSCRIPTCONTEXT


def get_data_from_folder( event=None ):
    doc = context.getDocument()
    sel = doc.getCurrentSelection()
    date = sel.String  #letzter Unterordner-name
    path = r'\\DISKSTATION\Geschäft\GESCHAEFT\datum\%s\*.ods'.decode('utf8') % date


    formula = """='%s'#Tabelle1.A1"""

    sheet = sel.getSpreadsheet()
    icol = sel.RangeAddress.StartColumn
    irow = sel.RangeAddress.StartRow

    formulas = [(formula % url_path(f),) for f in glob( path )]

    endrow = len(formulas) + irow -1
    outrange = sheet.getCellRangeByPosition(icol, irow, icol, endrow)
    outrange.setFormulaArray( tuple( formulas ))

 
Es ist nicht Java sondern Python-code.

Probier das erstmal aus dem angehängten Dokument heraus.
Der Basispfad \\DISKSTATION\Geschäft\GESCHAEFT\datum\ ist so im Script eingetragen - stimmt der ?
Wenn du die Testdateien in einem Unterordner .../5.11/ liegen hast musst du das so als Text in eine Zelle eintragen, diese Zelle auswählen und die Schaltfläche betätigen.
Wenn es nicht funktioniert, teil doch bitte mit ob es eine Fehlermeldung gibt, wenn ja welche, oder ob in den Zellen ein #REF! -fehler ausgegeben wird.
Datensammler2.ods
(16.3 KiB) 71-mal heruntergeladen
Karolus

Re: CALC: Dateien eines Ordners auswerten

von style2104 » Do, 08.11.2012 21:54

Ich trau mich es ja gar nicht zu sagen, aber
wo muss ich den Code implementieren?

Ich hab bisher noch sehr wenig mit Makros geschweige denn Java gemacht.

Ich hab bisher die Datei gespeichert und ein paar Test Dateien mit Werten in Tabelle A1 angelegt
Eine Auswertung ist aber leider nicht erfolgt.

Re: CALC: Dateien eines Ordners auswerten

von Karolus » Do, 08.11.2012 20:39

Hallo
Ein erster Entwurf:

Code: Alles auswählen

# -*- coding: utf_8 -*-

from glob import glob

context = XSCRIPTCONTEXT


def get_data_from_folder( event=None ):
    doc = context.getDocument()
    sel = doc.getCurrentSelection()
    date = sel.String
    path = r'\\DISKSTATION\Geschäft\GESCHAEFT\datum\%s\*.ods'.decode('utf8') % date


    formula = """='file://%s'#Tabelle1.A1"""

    sheet = sel.getSpreadsheet()
    icol = sel.RangeAddress.StartColumn
    irow = sel.RangeAddress.StartRow

    formulas = [(formula % f,) for f in glob( path )]

    endrow = len(formulas) + irow -1
    outrange = sheet.getCellRangeByPosition(icol, irow, icol, endrow)
    outrange.setFormulaArray( tuple( formulas ))


 
Das Script erstellt Formelverknüpfungen in alle .ods Dateien zur Zelladdresse 'Tabelle1.A1' im eingetragenen Pfad + Datumsstring aus der aktuell selektierten
Zelle und schreibt die Formeln in die Spalte einschliesslich und unterhalb der selektierten Zelle.
Dok mit eingebettetem Script und Schaltfläche hängt an.
Datensammler.ods
(16.28 KiB) 63-mal heruntergeladen
Karolus

Re: CALC: Dateien eines Ordners auswerten

von style2104 » Do, 08.11.2012 18:15

aktuell schauts bei mir gerade so aus das ich für jeden Kunden ein Dokument anlege.

Diese Dokumente greifen per Sverweis auf meine zentrales Tabellendokument zu, wo Artikel EK VK usw.
hinterlegt sind.

Ich komme soweit eigentlich sehr gut damit zurecht.
Vor allem finde ich die Rechnungen wenn ich sie unter dem Datum speichere sehr schnell wieder.
Ich kann auch bei jedem Kunden die Preise manuell angleichen was mit einer DB schon etwas komplizierter
werden dürfte oder?

MfG

Werner

Re: Dateien eines Ordners Auswerten

von Karolus » Do, 08.11.2012 17:54

Hallo
style2104 hat geschrieben:Mir würde es halt darum gehen nicht alle 20-30 Dokumente am Abend nochmals
öffnen zu müssen, sondern die Werte der verschiedenen Dateien per Makro abzufragen.
Ich hatte schon deinen Ausgangspost so interpretiert - ich halte es aber grundsätzlich für den verkehrten Ansatz, viele zusammengehörende Daten in Einzeldokumenten abzuspeichern und quasi hinterher wieder einzusammeln.
Machs andersrum gib die Daten zentral in eine Datenbank ein, (notfalls tuts auch ein Tabellendokument) und erzeuge die Rechnungen als Serienbriefdokumente.

Karolus

Re: Dateien eines Ordners Auswerten

von komma4 » Do, 08.11.2012 16:56

style2104 hat geschrieben:sondern die Werte der verschiedenen Dateien per Makro abzufragen.
[Moderation, 4]Mein Stichwort: verschoben in BASIC-Unterforum.

Bin mir relativ sicher, dass es mit Formeln nicht geht.

Re: Dateien eines Ordners Auswerten

von style2104 » Do, 08.11.2012 15:35

Mir würde es halt darum gehen nicht alle 20-30 Dokumente am Abend nochmals
öffnen zu müssen, sondern die Werte der verschiedenen Dateien per Makro abzufragen.

MfG

Werner

Re: Dateie eines Ordners Auswerten

von Karolus » Mi, 07.11.2012 17:35

Hallo
Ich würde nachmittags einen neuen Ordner anlegen 8)

Karolus

CALC: Dateien eines Ordners auswerten

von style2104 » Mi, 07.11.2012 17:14

Hallo zusammen,

ich hoffe ich bin hier richtig.
Ich speichere meine Rechnungen als ods in einen Datumsordner ab.

Als konkretes Beispiel ist der Pfad bei mir:

\\DISKSTATION\Geschäft\GESCHAEFT\datum\2.11

Jetzt fallen bei mir am 2.11 beispielsweise 8 Rechnungen an, bei denen immer an der gleichen Stelle der Gewinn ausgewiesen wird.
Kann ich in diesen Ordner einen Datei einfügen die alle im Ordner stehenden Dateien auswertet?

Wenn ja kann ich dann diese Datei kopieren und im nächsten Ordner verwenden, beispielsweise 06.11.
Die Werte aus diesen Dateien kann ich händisch übertragen, es ist mir also egal wenn die Datei die im Ordner 6.11
die Daten aus dem Ordner 2.11 nicht weiß.

Danke schon mal für eure Hilfe

Werner

Nach oben