Tabellen mit Formatierung übertragen

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: Tabellen mit Formatierung übertragen

Re: Tabellen mit Formatierung übertragen

von erikafuchs » Mi, 07.05.2008 22:52

Und noch was

ich habe jetzt mal das mit der Verknüpfung anstelle des Datenkopierens ausprobiert. Leider ist die eine Seite die ich jeweils einfügen will mit anderen Seiten des "Original"dokuments verknüpft, diese Verknüpfungen funktionieren dann leider nicht mehr.

Ich fürchte, das habe ich noch nicht so ganz im Griff!

Viele Grüße und Dank für Deine Mühe
Pit

Re: Tabellen mit Formatierung übertragen

von erikafuchs » Mi, 07.05.2008 22:21

Lieber Winfried,

ich hätte da ja noch eine Idee: Anstatt die einzufügenden Seiten neu zu erzeugen, könnte ich doch eine leere Seite formatieren, diese jeweils kopieren und die Daten da eintragen. Leider habe ich da das Problem, dass zwar die Formatierung beim Kopieren (auf den ersten Blick) übernommen wird, nicht aber die Spaltenbreiten, dieSpalten im kopierten Blatt sind immer alle gleich breit. Dieses Problem hatte ich schon oft - weißt du auch hierfür eine Lösung?

Gruß von Pit

Re: Tabellen mit Formatierung übertragen

von komma4 » Di, 06.05.2008 17:09

Ja: verknüpfte Tabellen werden als versteckte Kopie ins Zieldokument geladen und dort vorrätig gehalten.

Re: Tabellen mit Formatierung übertragen

von erikafuchs » Di, 06.05.2008 16:30

Lieber Winfried,

das klingt plausibel. Werden dann aber alle 20 bis 30 Dateien aufgehalten während man mit dem Dokument arbeitet?

Grüße
Pit

Re: Tabellen mit Formatierung übertragen

von komma4 » Mo, 05.05.2008 11:44

Warum so umständlich (Range kopieren)?
Wie wäre es mit dem Erzeugen einer Verknüpfung zu den Ziel-Dateien (hierbei bleiben alle Formatierungen erhalten):

Code: Alles auswählen

' Einfügen auf Blatt "Tabelle2" (index=1)
oBlatt = ThisComponent.Sheets().getByIndex( 1 ) 
' auf selektiertem Blatt eine Verküpfung einfügen
oBlatt.Link( "/pfad/zur/Datei.ods", "", "", "", com.sun.star.sheet.SheetLinkMode.NORMAL )

...wenn Du die Daten überhaupt kopieren möchtest (musst?)?
Warum nicht mit den Werten in den Zieldateien rechnen? Über DDE in Deine Zusammenfassung einbinden...?

Tabellen mit Formatierung übertragen

von erikafuchs » So, 04.05.2008 23:17

Ihr Lieben,

ich hätte da jetzt ein neues Problem:
Ich möchte aus vielen Dateien jeweils eine Seite kopieren und aus diesen Seiten ein neues Dokument erstellen. Ich habe das ja so weit zum Laufen bekommen, hätte jetzt aber gerne, dass auch die Formatierungen übernommen werden.
Bei meinem Versuch öffne ich zuerst das Zieldokument und von da aus per Makro nacheinander die Ursprungsdokumente, erzeuge jeweils ein neues Blatt ("neuesBlatt") und füge es mit "insertByName(NameX,neuesBlatt)" in das Zieldokument ein. Dann übertrage ich die Daten mit "getDataArray -> setDataArray". Jetzt habe ich aber halt immer nur die Daten aber meine schöne Foramtierung der Ursprungsseiten ist weg. Geht das auch anders?

Grüße
Pit

Code: Alles auswählen

sub einfuegen
   DialogLibraries.LoadLibrary("Datenbank")
   InDialog=createUnoDialog(DialogLibraries.Datenbank.InDialog) 
   InDialog.getControl("Dateiauswahl").text="Hier klicken um Datei einzufügen->"   
   InDialog.execute() 
   
   InDateiURL=InDialog.getControl("Dateiauswahl").text
   if InDateiURL = "Hier klicken um Datei einzufügen->"  then exit sub  
   n=InStr(InDateiURL, "Rechentrainer")
   if n>0 then
      URLLaenge=len(InDateiURL)
      URL=ConvertToURL(InDateiURL)      
      InDoc=StarDesktop.loadComponentFromURL(URL, "_blank", 0, Arg())
      nachname=InDoc.sheets.getByName("Daten").getCellByPosition(1,1).string
      vorname=InDoc.sheets.getByName("Daten").getCellByPosition(2,1).string
      endzeile=InDoc.sheets.getByName("Daten").getCellByPosition(0,2).string  
         
      sname=nachname & "_" & vorname
      oDoc=ThisComponent
      oTab=oDoc.getSheets(0)
      oSheet=oDoc.createInstance("com.sun.star.sheet.Spreadsheet") 
      oTab.insertByName(sname,oSheet) 
                
      DatArray=InDoc.sheets.getByName("Übersicht").getCellRangeByPosition(0,0,13,endzeile).getDataArray
      oDoc.sheets.getByName(sname).getCellRangeByPosition(0,0,13,endzeile).setDataArray(DatArray)      
      InDoc.close(true)
   end if      
end sub

Nach oben