Jump to content

Excel Datei importieren


My-Zenturio

Recommended Posts

Hallo,

 

vorweg folgende Infos.

 

Ich muß JEDEN Tag eine Datei in Prestashop importieren. Da ich diese bereits aus einem riesigen Datenberg herausgefiltert habe, mache ich das Ganze mit Excel. Damit habe ich am Schluß eine Excel Datei mit *.xlsx am Ende.

 

Prestashop verlangt CSV Import. Also speichere ich das unter Excel als CSV. Mal abgesehen von den Fehlern beim Speichern, die ganz offensichtlich bei Excel üblich sind, wird nun also eine CSV Datei erstellt. Beim Einlesen in PS sind nun aber die Umlaute weg.

 

Auch der Versuch in Excel als UTF8.txt zu speichern und einfach mal ganz frech die Dateiendung in CSV zu verändern hat nichts Positives erbracht. (war nicht zu erwarten, aber man kann's ja mal versuchen).

 

Also wäre der Weg:

 

Excel Export als CSV

Notepad Import

Speichern im UTF8 Code

Import in PS

 

Sorry, aber das ist Sch.... Das jeden Tag?

 

Gibt es den keine gangbare Lösung und oder - meinetwegen auch eine kostenpflichtige - Excel Import (xlsx) Lösung?

 

Grüße

 

Willi

Link to comment
Share on other sites

Hallo Willi,

 

eine weitere Möglichkeit wäre, du verwendest statt Microsoft Office für diesen Fall Open Office, da klappt das mit UTF-8 problemlos.

Ich konnte mich an die Variante allerdings nie gewöhnen und die Notepad-Variante war mir auch zu aufwändig deshalb hab' mir für EXCEL ein VBA-Makro gemacht,  die Grundversion sieht so aus:

 

Public Sub WriteCSV()
iLastRow = Cells(Rows.Count, "a").End(xlUp).Row
iLastCol = Cells(1, Columns.Count).End(xlToLeft).Column

Set wkb = ActiveSheet
Dim fileName As String
Dim MaxCols As Integer
fileName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv")

If fileName = "False" Then
End
End If

On Error GoTo err
Const adTypeText = 2
Const adSaveCreateOverWrite = 2

Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Charset = "UTF-8"
BinaryStream.Type = adTypeText
BinaryStream.Open

For r = 1 To iLastRow
s = ""
c = 1
While c <= iLastCol
s = s & wkb.Cells(r, c).Value & ","
c = c + 1
Wend
BinaryStream.WriteText s, 1
Next r

BinaryStream.SaveToFile fileName, adSaveCreateOverWrite
BinaryStream.Close

MsgBox "CSV generated successfully"

err:

End Sub
 

Beliebig erweiterbar (Kommas filtern,Semikolon wandeln, auf Funktionstaste legen etc)

 

Grüsse

Whiley

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...