gerdk Posted September 9, 2008 Report Share Posted September 9, 2008 Hallo, Habe noch ein Problem mit den Texttrennern beim Importieren meiner Artikel. Wir haben manche Artikel, die in der Beschreibung oder im Titel mit Anführungszeichen arbeiten ("). Selbst wenn ich jetzt als Texttrenner z.B. ~ oder ³ verwende (und das ebenfalls bei xtc so angebe!) stellt das Script immer ein \ vor das ". Was läuft da schief? Als Trennzeichen verwende ich ; Beispiel: So sieht es dann im Shop aus: Text1 \"Text2\" Text3 Weiß jemand einen Rat? Gruß Gerd Link to comment Share on other sites More sharing options...
Guest tuvalu Posted September 9, 2008 Report Share Posted September 9, 2008 Beispiel: So sieht es dann im Shop aus: Text1 \"Text2\" Text3Das ist ein Fehler im import-Modul. Angehängt eine modifizierte import.php (als zip-Archiv) aus dem Supportforum - also nicht von mir. Die Datei admin/includes/classes/import.php damit ersetzen. Oder mit z.B. WinMerge einen Vergleich mit der Originaldatei machen und nur die Änderungen übernehmen. tuvalu Link to comment Share on other sites More sharing options...
gerdk Posted September 9, 2008 Author Report Share Posted September 9, 2008 Hallo. Super, vielen Dank, hat funktioniert. Aber noch eine Frage. Wenn ich aus Excel heraus in eine CSV-Datei exportiere, dann macht er um Anführungszeichen in einem Titel ein weiteres Paar Anführungszeichen. Und beim Import der Artikel in XTC bleiben dann beide. Somit wird aus "text" dann ""text"". Kann man das auch irgendwie umgehen, ohne mit einem Editor die Datei zu bearbeiten, bevor man sie importiert? Gruß Gerd Link to comment Share on other sites More sharing options...
Guest tuvalu Posted September 10, 2008 Report Share Posted September 10, 2008 Keine Ahnung warum das so ist. Weiß jemand Bescheid? tuvalu Link to comment Share on other sites More sharing options...
dekamerone Posted September 11, 2008 Report Share Posted September 11, 2008 Ich hab da mal ein Excel-Makro geschrieben, mittels welchem du CSV-Dateien aus Excel-Dateien schreiben kannst ... '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ExportToTextFile ' This exports a sheet or range to a text file, using a ' user-defined separator character. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Public Sub ExportToTextFile(FName As String, _ Sep As String, SelectionOnly As Boolean, _ AppendData As Boolean) Dim WholeLine As Variant Dim FNum As Integer Dim RowNdx As Long Dim ColNdx As Integer Dim StartRow As Long Dim EndRow As Long Dim StartCol As Integer Dim EndCol As Integer Dim CellValue As Variant Dim tmpVal As Variant Dim i As Integer Application.ScreenUpdating = False On Error GoTo EndMacro: FNum = FreeFile If SelectionOnly = True Then With Selection StartRow = .Cells(1).Row StartCol = .Cells(1).Column EndRow = .Cells(.Cells.Count).Row EndCol = .Cells(.Cells.Count).Column End With Else With ActiveSheet.UsedRange StartRow = .Cells(1).Row StartCol = .Cells(1).Column EndRow = .Cells(.Cells.Count).Row EndCol = .Cells(.Cells.Count).Column End With End If If AppendData = True Then Open FName For Append Access Write As #FNum Else Open FName For Output Access Write As #FNum End If For RowNdx = StartRow To EndRow WholeLine = "" For ColNdx = StartCol To EndCol If Cells(RowNdx, ColNdx).Value = "" Then 'CellValue = Chr(34) & Chr(34) CellValue = "" Else tmpVal = Mid(Cells(RowNdx, ColNdx).Value, 1) & "" If (Len(tmpVal) > 200) Then MsgBox tmpVal MsgBox Mid(Cells(RowNdx, ColNdx).Value, 201), vbInformation, Len(Cells(RowNdx, ColNdx).Text) tmpVal = "" For i = 0 To Int(Len(Cells(RowNdx, ColNdx).Value) / 255) tmpVal = tmpVal & Mid(Cells(RowNdx, ColNdx).Value, (i * 255) + 1, 255) Next MsgBox tmpVal, vbExclamation, "Mid-Test i=" & i & " - len(tmpVal)=" & Len(tmpVal) End If If InStr(tmpVal, """") > 0 Then CellValue = "~" & Replace(tmpVal, """""", """") & "~" Else CellValue = tmpVal End If End If WholeLine = WholeLine & CellValue & Sep Next ColNdx WholeLine = Left(WholeLine, Len(WholeLine) - Len(Sep)) 'WholeLine = Replace(WholeLine, """""", """") Print #FNum, WholeLine Next RowNdx EndMacro: On Error GoTo 0 Application.ScreenUpdating = True Close #FNum End Sub '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' END ExportTextFile '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Sub DoTheExport() ExportToTextFile "Test2.csv", "|", False, False End Sub ----------------- Einfach obigen vbCode in die Excel-Datei einfügen und das Makro "DoTheExport" ausführen - im oben angegebenen Fall wird eine Datei Test2.csv geschrieben mit dem Separator "|" und Texterkennungszeichen "~" (letzteres wird allerdings nur geschrieben, wenn tatsächlich notwendig) - das darf man anpassen :-) (nicht vergessen: entsprechende Importeinstellungen in xtCommerce-Admin konfigurieren) Happy projects : Michael Link to comment Share on other sites More sharing options...
dekamerone Posted September 11, 2008 Report Share Posted September 11, 2008 ... naja, ist ntürlich nicht alles selbst geschrieben sondern die Basis-Idee irgendwo in einem Forum gefunden ;-) (aber es funktioniert auch mit sehr grossen Texten :-) - und das ist schon eine echte Erhöhung der Schöpfungstiefe) ;-) : Michael Link to comment Share on other sites More sharing options...
gerdk Posted September 11, 2008 Author Report Share Posted September 11, 2008 Super , vielen Dank, werde es morgen mal ausprobieren. Eigentlich kann man hervorragend aus Access exportieren, aber leider werden da alle Zahlen auf 2 Stellen nach dem Komma gekürzt. Das ist leider blöd, wenn man Gewichte mit 3 Stellen hat. Vielleicht weiß da ja jemand einen Rat. Gruß Gerd Link to comment Share on other sites More sharing options...
gerdk Posted September 11, 2008 Author Report Share Posted September 11, 2008 Hallo dekamerone. War jetzt doch noch neugierig und habe es noch ausprobiert. Funktioniert gut, aber folgendes: Per Format habe ich den Verkaufspreis auf 4 Stellen nach dem Komma gestellt und über die Einstellungen von Excel, dass aus dem Komma ein Punkt wird. Wenn ich nun das Makro starte kommt es zu dem Ergebnis, dass in der Text2.csv wieder die 12 Stellen nach dem Komma sind, und auch der Punkt wird ignoriert und wieder das Komma gesetzt. Gibt es dafür noch eine Abhilfe? Ansonsten funktioniert es super. Gruß Gerd Link to comment Share on other sites More sharing options...
dekamerone Posted September 12, 2008 Report Share Posted September 12, 2008 Hallo Gerd, ich glaube bei mir sind alle Excel-Felder mit dem Datentyp "Text" gesetzt ? - Ansonsten könnte man natürlich auf die Zell-Formatierung als Zahl testen und dann punktformatierte 4-stellige Zahlen ausgeben - kein Hexenwerk, aber nicht mehr jetzt. Probierst du's erst mal mit der Zellformatierung? Ausserdem könnte man statt Cells(RowNdx, ColNdx).Value Cells(RowNdx, ColNdx).Text schreiben ... das gibt den Zellinhalt vielleicht wie gesehen zurück (eigentlich ja, vbScript evtl. ...) Happy projects und viel Erfolg : Michael Link to comment Share on other sites More sharing options...
gerdk Posted September 13, 2008 Author Report Share Posted September 13, 2008 Hallo. Vielen Dank. Da kann ich mich auch gut selber dranmachen. Somit noch mal vielen Dank für das Script. Gruß Gerd Link to comment Share on other sites More sharing options...
aborigi Posted September 26, 2009 Report Share Posted September 26, 2009 Hallo!, hat vielleicht noch jemand die modifizierte import.php? Ich habe das gleiche Problem beim Import von Produkten und bin schon am verzweifeln! Danke und viele Grüße Simon Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.