Ergebnis 1 bis 1 von 1

Thema: Mit 1-Klick aus MS Excel eine Gambio-konforme CSV-Datei erzeugen

  1. #1
    Administrator Avatar von KlausK
    Registriert seit
    29.09.2010
    Beiträge
    2.821
    Downloads
    249
    Uploads
    375

    Mit 1-Klick aus MS Excel eine Gambio-konforme CSV-Datei erzeugen

    Gambio empfiehlt ab GX Version 2.1 nur noch die UTF-8 Kodierung zu verwenden. Denn UTF-8 (Universal Character Set (UCS) Transformation Format for 8-Bit) ist die am weitesten verbreitete Kodierung für UCS- bzw. Unicode-Zeichen (Wikipedia). Microsoft Excel lässt sich jedoch nur schwer bzw. gar nicht zum Export einer CSV-Datei im UTF-8 Code bewegen.

    Eine Excel-Tabelle lässt sich zwar als CSV-Datei speichern. Die CSV wird dann aber mit dem nicht wählbaren Trennzeichen ; und trotzdem in ANSI-Codierung gespeichert. Sämtliche Umlaute werden dann im Shop mit unlesbaren Zeichenkombinationen präsentiert. Wer HTML-Code mit CSS-Elementen in seiner Produktbeschreibung verwendet, hat dann noch ein zusätzliches Problem!

    Manche wollen auf MS Excel nicht verzichten und nutzen nur wegen der CSV-Erzeugung zusätzlich z.B. Libre-Office oder konvertieren die CSV anschließend mit Notepad++ in UTF8.

    Das dauert alles viel zu lange und kann mit einem Klick erledigt werden! Mit einem FTP-Clienten wie z.B. Webdrive lässt sich im Windows-Explorer ein dauerhaft verbundenes Netzlaufwerk zu eurem Shopverzeichnis erstellen. So lässt sich die CSV mit einem Klick direkt im Shopverzeichnis erzeugen.

    Die Lösung bringt der nachstehende, auf das Wichtigste reduzierte VBA-Code. Einfach erklärt, für jeden Newbie leicht einzubauen. Eine Beispiel-Mappe habe ich hier ebenfalls hochgeladen. Der Excel/VBA-Kenner baut sich daraus schnell ein individuelles Tool.

    Anleitung:
    • Archiv excel_to_csv.zip runterladen, entpacken und excel_to_csv.xlsm öffnen
    • Es folgt vermutlich eine Sicherheitswarnung. Diese Warnung ist korrekt, kann aber auch deaktiviert werden
    • Ihr seht eine vorgefertigte Tabelle mit allen importierbaren Spalten und 3 Beispiel-Artikeln
    • Außerdem eine Schaltfläche für den CSV-Export, die mit Rechtsklick beliebig verschoben werden kann
    • Alles was auf dieser Seite steht wird bei Klick ohne Rückfrage unter C:\art_exp.csv (default) gespeichert
    • Mit Excel >>> Entwicklertools >>> Visual Basic kommt ihr zum Makro um dort erklärte Anpassungen vorzunehmen
    • Das Macro funktioniert mit Excel 14 (2010) 32 und 64 Bit, sollte aber schon ab spätestens Version 11 (2003) bis 365 laufen



    Wer nichts runterladen will, hier der Code (einfügen in Standardmodul):
    Code:
    Sub Create_CSV()
    
    'Variablendeklaration (nicht ändern)
        Dim Exportdatei As String
        Dim Trennzeichen As String
        Dim Zellbereich As Range
        Dim Zeile As Object
        Dim Zelle As Object
        Dim TempZeile As String
        Dim Tabelle As String
    
    
    '### Eigene Anpassungen #########
    
        Tabelle = "Export_to_CSV"           'Name der zu exportierenden Tabelle angeben, hier ist es "Export_to_CSV"
        
        Trennzeichen = "|"                  'Trennzeichen angeben, hier "|" weil dieses normalerweise in keiner Beschreibung vorkommt.
                                            'Es muss immer ein Zeichen gewählt werden, dass niemals in eurer Export-Datei vorkommt.
                                            'Außerdem muss in der Import-Modul des Shops das selbe Zeichen ausgewählt werden!
                                            
        Exportdatei = "C:\art_exp.csv"      'Speicherort und Name der Export-CSV, hier "C:\ArtExp.csv"
                                            'Mit einem WebDAV oder FTP-Clienten wie z.B. Webdrive lässt sich ein dauerhaft verbundenes Netzlaufwerk zum Shopverzeichnis erstellen.
                                            'Der Pfad könnte dann z.B. so aussehen: "W:\httpdocs\domain\gambio_shop\export\art_exp.csv"
        
    '### Ab hier nichts mehr ändern #########
    
    
        Application.ThisWorkbook.Sheets(Tabelle).Activate
        Cells.Select
        Set Zellbereich = Sheets(Tabelle).UsedRange
        
        Open Exportdatei For Output As #1
            For Each Zeile In Zellbereich.Rows
                For Each Zelle In Zeile.Cells
                    TempZeile = TempZeile & Zelle & Trennzeichen
                Next Zelle
                Print #1, GetUTF8String(Left(TempZeile, Len(TempZeile) - 1))
                TempZeile = ""
            Next Zeile
        Close #1
        Application.ThisWorkbook.Sheets(Tabelle).Cells(1, 1).Select
        
    End Sub
    
    Private Function GetUTF8String(s As String) As String
       Dim i As Integer
       Dim utf16 As Long, uc(2) As Byte
       
       GetUTF8String = ""
       For i = 1 To Len(s)
          utf16 = AscW(Mid(s, i, 1))
          If utf16 < 0 Then utf16 = utf16 + 65536
          If utf16 < &H80 Then
             GetUTF8String = GetUTF8String & Chr(utf16)
          ElseIf utf16 < &H800 Then
             uc(1) = &H80 + (utf16 And &H3F)
             utf16 = utf16 \ &H40
             uc(0) = &HC0 + (utf16 And &H1F)
             GetUTF8String = GetUTF8String & Chr(uc(0)) & Chr(uc(1))
          Else
             uc(2) = &H80 + (utf16 And &H3F)
             utf16 = utf16 \ &H40
             uc(1) = &H80 + (utf16 And &H3F)
             utf16 = utf16 \ &H40
             uc(0) = &HE0 + (utf16 And &HF)
             GetUTF8String = GetUTF8String & Chr(uc(0)) & Chr(uc(1)) & Chr(uc(2))
          End If
       Next
    End Function
    Hier die Beispiel-Arbeitsmappe für Microsoft Excel 14 (Excel 2010) und neuer
    Angehängte Dateien Angehängte Dateien

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 25.05.2014, 16:30
  2. Zufällige Nummern erzeugen (Eventshop)
    Von born2shop im Forum Gambio GX Adminbereich
    Antworten: 2
    Letzter Beitrag: 25.01.2013, 12:50
  3. Ab wann ist eine UVP eine UVP?
    Von KlausK im Forum RECHT
    Antworten: 2
    Letzter Beitrag: 16.03.2012, 09:53
  4. Gambio GX: Metaangaben anpassen / ändern -welche Datei ?
    Von Merlyn Design im Forum Gambio GX Off Topic
    Antworten: 0
    Letzter Beitrag: 10.02.2011, 00:26
  5. Doppelter Content - Kann man selberdoppelten Content erzeugen?
    Von Freelancer im Forum SEO Onpageoptimierung
    Antworten: 2
    Letzter Beitrag: 17.10.2010, 05:36

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •