Daten aus XLS in ODS importieren aber Format beibehalten

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

12dis02424
*
Beiträge: 16
Registriert: Sa, 26.02.2011 02:20

Daten aus XLS in ODS importieren aber Format beibehalten

Beitrag von 12dis02424 »

Hallo,

ich bin neu in diesem Forum und seit einigen Stunden auf der Suche im Netz nach der Lösung für folgendes Problem.

Ich möchte mit einem Makro eine Excel Tabelle in eine ODS Tabelle importieren aber das Format der Exceltabelle soll beibehalten werden.
(Farbig, verschiedene Schriftarten, Gruppierungen ....usw)
Ich habe hier zwar ein tolles Makro zum importieren gefunden allerdings werden die Formatierungen nicht übernommen.

Kann mir einer bitte helfen ????

Vielen Dank
Norman
12dis02424
*
Beiträge: 16
Registriert: Sa, 26.02.2011 02:20

Re: Daten aus XLS in ODS importieren aber Format beibehalten

Beitrag von 12dis02424 »

Hallo paljass,

das Makro habe ich hier bei openoffice.info gefunden und sieht wie folgt aus.

Code: Alles auswählen

Sub Main
    Dim sPath, fullPath, iVal, iResult As String
    Dim r  as Integer
    Dim oDocument, thisDoc, oSheet, ocell1, oVal, oSrcRange, oDstRange as Object

    ' Start und Endposition fuer CellRangeByPosition festlegen
    CRBP_L = 0 ' CellRangeByPosition Links      Spalte A
    CRBP_O = 1 ' CellRangeByPosition Oben      Zeile 1
    CRBP_R = 13 ' CellRangeByPosition Rechts   Spalte N
    CRBP_U = 801 ' CellRangeByPosition Unten   Zeile 801

    sPath = "c:\Dokumente und Einstellungen\user\Desktop\Test" & getpathseparator 'Ort der die Dateien enthält >> Pfad anpassen!
    r = 1 'Startwert Zeile setzen
    sFileName = Dir$(sPath & getPathSeparator() & "*", 0)
'    Do
      fullPath = converttourl(sPath & sFileName)
      sFileName = Dir$
      'folgend Quelldokument im Hintergrund öffnen
      dim myFileProp(0) as New com.sun.star.beans.PropertyValue
      myFileProp(0).name = "Hidden"
      myFileProp(0).value = true
      oDocument = StarDesktop.loadComponentFromURL(fullPath, "_blank", 0, myFileProp())

      'Werte aus Quelldokument lesen
      oSheet = oDocument.sheets(0) 'erstes Tabellenblatt des Quelldokumentes
      oSrcRange = osheet.getCellRangeByPosition(CRBP_L,CRBP_O,CRBP_R,CRBP_U) 'Spalte A , Zeile 1, Spalte N, Zeile 801
      oDataArray = oSrcRange.getDataArray

      'Werte in das Zieldokument schreiben
      thisDoc = thisComponent 'Zieldokument ansprechen
      oSheet = thisDoc.sheets(0) 'erstes Tabellenblatt der Zieldatei
      oDstRange = osheet.getCellRangeByPosition(CRBP_L,CRBP_O,CRBP_R,CRBP_U) 'Spalte A , Zeile 1, Spalte N, Zeile 801
      oDstRange.setDataArray(oDataArray)
    
      redim myFileProp
      oDocument.close(true) 'Quelldokument schliessen
'    Loop Until sFileName = ""
    msgbox "Fertig !!!" ,64 , "Dateien auslesen"
End Sub


Ich habe mir das Makro schon soweit angepasst, nur das halt nicht die Formate übernommen werden.


Vielen Dank

Norman
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Daten aus XLS in ODS importieren aber Format beibehalten

Beitrag von turtle47 »

Hallo Norman,
12dis02424 hat geschrieben:nur das halt nicht die Formate übernommen werden
Das funktioniert leider nicht mit getDataArray und setDataArray. :?
Damit werden nur Werte und Text kopiert, also keine Formeln und Formate.

Wenn Du Formate mit kopieren willst musst Du das über die Kopierfunktion (Zwischenablage) machen.
Beigefügt mal ein Beispiel aus meiner Grabbelkiste in dem ein Zellbereich in ein neues Dokument kopiert wird.
Vielleicht kannst Du damit was anfangen.

Viel Erfolg.

Jürgen
Dateianhänge
Tabelle Dokument kopieren.ods
(15.05 KiB) 54-mal heruntergeladen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Gert Seler
*******
Beiträge: 1763
Registriert: Di, 03.10.2006 18:05

Re: Daten aus XLS in ODS importieren aber Format beibehalten

Beitrag von Gert Seler »

Hallo Norman,
OOo_Calc importiert generell " *.xls oder *.xlsx " Dateien mit Doppelklick . Auch "VBA-Makros" werden importiert und mit "Hochkomma" ( ' ) in "Text"
gewandelt.
Bedingte Formatierungen von "xls" können nicht angezeigt werden, da die "Bedingte Formatierung" in "OOo_Calc" anders erstellt werden.
Siehe :
http://www.ooowiki.de/CalcFormatBedingt
Als "Extension" gibt es ein Makro "mottco" mit dem mehr als 3Farben gargestellt werden.
Siehe hier :
http://www.calc-info.de/makros.htm
Ich hoffe das hilft Dir weiter, sonst wende Dich an das Forum : OOo_Basic / Java (siehe Forumsübersicht)

mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
12dis02424
*
Beiträge: 16
Registriert: Sa, 26.02.2011 02:20

Re: Daten aus XLS in ODS importieren aber Format beibehalten

Beitrag von 12dis02424 »

Hallo,

vielen Dank für die Lösungsansätze.
Ich mache es jetzt einfach über Einfügen und Tabelle einfügen.

Viele Grüßr
Antworten