|
|||
|
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 |
|
|||
|
Das 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 Geändert von tuvalu (25.02.2009 um 12:41 Uhr) |
|
|||
|
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 |
|
|||
|
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 |
|
|||
|
... 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 |
|
|||
|
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 |
|
|||
|
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 |
|
|||
|
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 |
![]() |
| Lesezeichen |
| Stichworte |
| anführungszeichen, import |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Fehler Beim Import Meiner Rechnungen Aus Osc | andreas2k | Installation und Konfiguration | 4 | 24.01.2006 16:45 |