PHPExcel streich führende 0

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHPExcel streich führende 0

    Obwohl ich in meiner Excel Tabelle die Zahlen als Text hinterlege kürzt phpexcel die führende 0. Dabei handelt es sich um Artikelnummern, die entsprechenden Artikel in der Tabelle sollen dann über eine Api anbindung importiert werden. Klappt auch alles gut außer bei Artikelnummern mit einer 0. Habe jetzt alles Probiert. Hier im Forum bin ich auf diesen Beitrag aufmerksam geworden:


    https://www.php-resource.de/forum/ph...en-nullen.html


    Allerdings hab ich keine Ahnung wo ich das jetzt bei mir einfügen muss. Wenn jemand Lust hätte mir zu helfen können wir gern persönlich mal schreiben oder quatschen, dann lässt sich das schneller und besser erklären. Wäre über Hilfe sehr dankbar.

  • #2
    Bitte einen kurzen Beispielcode posten, bei dem das Problem nachvollziehbar auftritt.

    Kommentar


    • #3
      Aus bzw. von welcher welcher Datei ist die Frage ? Ich vermute es ist eine der phpexcel Dateien wo die Tabelle umgewandelt wird, ich habe keine Ahnung welche genau.
      Können wir uns per skype oder ähnlichem in Verbindung setzen ?

      Kommentar


      • #4
        Gar keine Datei. Programmiere bitte ein Beispiel, bei dem das Problem nachvollziehbar auftritt und füge es hier ins Forum ein.

        Kommentar


        • #5
          Das ist ein Script aus mehreren Dateien, ich vermute das das Problem in der erweitung phpexcel liegt, aber ich weiss eben nicht wo. Ich kann hier nicht einfach den code rein kopieren sondern man muss dazu auch mal die Ordnerstruktur sehen und wissen wie und was da eigentlich abläuft. Das ganze ist etwas komplexer und nicht mit ein paar Zeilen zu beschreiben. Würde mich aber wie gesagt trotzdem freuen wenn du es dir mal anschauen willst. Würde dir auch mal vorübergehend nen zugang auf unseren server anlegen und dann mal gemeinsam drauf schauen.

          Kommentar


          • #6
            Zitat von sellus Beitrag anzeigen
            Das ist ein Script aus mehreren Dateien, ich vermute das das Problem in der erweitung phpexcel liegt, aber ich weiss eben nicht wo. Ich kann hier nicht einfach den code rein kopieren sondern man muss dazu auch mal die Ordnerstruktur sehen und wissen wie und was da eigentlich abläuft. Das ganze ist etwas komplexer und nicht mit ein paar Zeilen zu beschreiben. Würde mich aber wie gesagt trotzdem freuen wenn du es dir mal anschauen willst. Würde dir auch mal vorübergehend nen zugang auf unseren server anlegen und dann mal gemeinsam drauf schauen.
            Du musst eben das Script auf das Minimum herunterbrechen, mit dem das Problem nachstellbar ist. Das ist deine Aufgabe als Programmierer und nicht Aufgabe eines Forums.

            Wenn du das nicht machen willst, dann musst du halt jemand anders dafür gegen Geld beauftragen.

            Kommentar


            • #7
              Also ich bin kein Programmierer, sonst hätte ich warscheinlich nicht um Hilfe gebeten. Ich kann mich etwas einlesen in die Materie und ich verstehe gewissen Dinge der programiiersprache, aber das ist einfach zu komplex hier. Deshalb habe ichHilfe erbeten und gesucht. Schlaue Kommentare wie ich soll mir doch jemand gegen Geld holen bringen mich null weiter und lassen mich auch nichts dazu lernen. Wenn du mir nicht helfen willst dann sag es einfach und erspare mir solche Hinweise. Das ich für Geld jemanden beauftragen kann weis ich selbst. Ich möchte ja aber was dazu lernen und die Lösung selbst gern finden.

              Kommentar


              • #8
                Zitat von sellus Beitrag anzeigen
                Also ich bin kein Programmierer, sonst hätte ich warscheinlich nicht um Hilfe gebeten.
                Wenn du nicht programmieren kannst, wie soll man dir helfen, außer die ganze Arbeit für dich zu machen?

                Zitat von sellus Beitrag anzeigen
                Ich kann mich etwas einlesen in die Materie und ich verstehe gewissen Dinge der programiiersprache, aber das ist einfach zu komplex hier. Deshalb habe ichHilfe erbeten und gesucht. Schlaue Kommentare wie ich soll mir doch jemand gegen Geld holen bringen mich null weiter und lassen mich auch nichts dazu lernen.
                Wenn du etwas lernen willst, dann lerne. Aber indem dir jemand die Lösung am Silbertablett serviert und die ganze Arbeit für dich macht, lernst du genau gar nix, außer dass du beim nächsten Problem dann wieder ein Forum gratis für dich arbeiten lässt.

                Zitat von sellus Beitrag anzeigen
                Wenn du mir nicht helfen willst dann sag es einfach und erspare mir solche Hinweise. Das ich für Geld jemanden beauftragen kann weis ich selbst. Ich möchte ja aber was dazu lernen und die Lösung selbst gern finden.
                Dann musst du programmieren lernen. Daran führt nichts vorbei, wenn du es nicht machen lassen willst. Man kann sich nicht waschen ohne nass zu werden.

                Kommentar


                • #9
                  [COLOR=#d4d4d4][FONT=Consolas][COLOR=#569cd6]function[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#dcdcaa]loadNumbers[/COLOR][COLOR=#d4d4d4](){[/COLOR]
                  [COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]global[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$root[/COLOR][COLOR=#d4d4d4];[/COLOR]
                  [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$reader[/COLOR][COLOR=#d4d4d4] = Asan\PHPExcel\[/COLOR][COLOR=#4ec9b0]Excel[/COLOR][COLOR=#d4d4d4]::[/COLOR][COLOR=#dcdcaa]load[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$root[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#ce9178]'EDC.xlsx'[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#ce9178]'GBK'[/COLOR][COLOR=#d4d4d4]);[/COLOR]
                  [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$count[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#9cdcfe]$reader[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#dcdcaa]count[/COLOR][COLOR=#d4d4d4]();[/COLOR]

                  [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$numbers[/COLOR][COLOR=#d4d4d4] = [];[/COLOR]
                  [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$category_id[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#ce9178]''[/COLOR][COLOR=#d4d4d4];[/COLOR]
                  [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]for[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#9cdcfe]$i[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#b5cea8]3[/COLOR][COLOR=#d4d4d4]; [/COLOR][COLOR=#9cdcfe]$i[/COLOR][COLOR=#d4d4d4] <= [/COLOR][COLOR=#9cdcfe]$count[/COLOR][COLOR=#d4d4d4]; [/COLOR][COLOR=#9cdcfe]$i[/COLOR][COLOR=#d4d4d4] ++){[/COLOR]
                  [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$reader[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#dcdcaa]seek[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$i[/COLOR][COLOR=#d4d4d4]);[/COLOR]
                  [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$row[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#9cdcfe]$reader[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#dcdcaa]current[/COLOR][COLOR=#d4d4d4]();[/COLOR]

                  [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#9cdcfe]$row[/COLOR][COLOR=#d4d4d4][[/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4]] || [/COLOR][COLOR=#9cdcfe]$row[/COLOR][COLOR=#d4d4d4][[/COLOR][COLOR=#b5cea8]1[/COLOR][COLOR=#d4d4d4]]){[/COLOR]
                  [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#9cdcfe]$row[/COLOR][COLOR=#d4d4d4][[/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4]]){[/COLOR]
                  [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$category_id[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#dcdcaa]findCategoryID[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$row[/COLOR][COLOR=#d4d4d4][[/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4]]);[/COLOR]
                  [COLOR=#d4d4d4] }[/COLOR]
                  [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#9cdcfe]$row[/COLOR][COLOR=#d4d4d4][[/COLOR][COLOR=#b5cea8]1[/COLOR][COLOR=#d4d4d4]])[/COLOR]
                  [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$numbers[/COLOR][COLOR=#d4d4d4][[/COLOR][COLOR=#dcdcaa]ltrim[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$row[/COLOR][COLOR=#d4d4d4][[/COLOR][COLOR=#b5cea8]1[/COLOR][COLOR=#d4d4d4]],[/COLOR][COLOR=#ce9178]"0"[/COLOR][COLOR=#d4d4d4])] = [/COLOR][COLOR=#9cdcfe]$category_id[/COLOR][COLOR=#d4d4d4];[/COLOR]
                  [COLOR=#d4d4d4] }[/COLOR]
                  [COLOR=#d4d4d4] }[/COLOR]
                  [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$numbers[/COLOR][COLOR=#d4d4d4];[/COLOR]
                  [COLOR=#d4d4d4]}[/COLOR]
                  [/FONT][/COLOR]

                  Kommentar


                  • #10
                    Hier zunächst der Ausschnitt indem die Nummern von der entsprechenden Tabelle geladen werden. In phpexcel, soweit so gut.
                    Hier wird meiner Meinung nach auch noch nichts weiter abgeschnitten. Die frage ist nun erstmal in welcher Datei von phpexcel die Tabelle verarbeitet wird, sprich die Nummern eingelesen bzw. umgewandelt. Eingelesen werden sie denke ich durch den Reader im phpexcel Verzeichnis.

                    Kommentar


                    • #11
                      Diese Datei (ausschnitt) sieht für xlsx Files (sie heißt xlsx.php) so aus:


                      [COLOR=#d4d4d4][FONT=Consolas][COLOR=#d4d4d4] [/COLOR][COLOR=#6a9955]/**[/COLOR]
                      [COLOR=#6a9955] * Make the generator[/COLOR]
                      [COLOR=#6a9955] *[/COLOR]
                      [COLOR=#6a9955] * [/COLOR][COLOR=#569cd6]@return[/COLOR][COLOR=#6a9955] \[/COLOR][COLOR=#4ec9b0]Generator[/COLOR]
                      [COLOR=#6a9955] */[/COLOR]
                      [COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]protected[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]function[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#dcdcaa]makeGenerator[/COLOR][COLOR=#d4d4d4]() {[/COLOR]
                      [COLOR=#d4d4d4] [/COLOR][COLOR=#dcdcaa]list[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$rowLimit[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#9cdcfe]$columnLimit[/COLOR][COLOR=#d4d4d4]) = [/COLOR][COLOR=#569cd6]$this[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#dcdcaa]count[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#569cd6]true[/COLOR][COLOR=#d4d4d4]);[/COLOR]

                      [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$line[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#9cdcfe]$finish[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4];[/COLOR]
                      [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]while[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#9cdcfe]$finish[/COLOR][COLOR=#d4d4d4] < [/COLOR][COLOR=#9cdcfe]$rowLimit[/COLOR][COLOR=#d4d4d4] && ([/COLOR][COLOR=#9cdcfe]$row[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#569cd6]$this[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#9cdcfe]parser[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#dcdcaa]getRow[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$line[/COLOR][COLOR=#d4d4d4]++, [/COLOR][COLOR=#9cdcfe]$columnLimit[/COLOR][COLOR=#d4d4d4])) !== [/COLOR][COLOR=#569cd6]false[/COLOR][COLOR=#d4d4d4]) {[/COLOR]
                      [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#569cd6]$this[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#9cdcfe]parser[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#dcdcaa]isIgnoreEmptyRow[/COLOR][COLOR=#d4d4d4]() && [/COLOR][COLOR=#dcdcaa]trim[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#dcdcaa]implode[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#ce9178]''[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#9cdcfe]$row[/COLOR][COLOR=#d4d4d4])) === [/COLOR][COLOR=#ce9178]''[/COLOR][COLOR=#d4d4d4]) {[/COLOR]
                      [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]continue[/COLOR][COLOR=#d4d4d4];[/COLOR]
                      [COLOR=#d4d4d4] }[/COLOR]

                      [COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$finish[/COLOR][COLOR=#d4d4d4]++;[/COLOR]
                      [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]yield[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#9cdcfe]$row[/COLOR][COLOR=#d4d4d4];[/COLOR]
                      [COLOR=#d4d4d4] }[/COLOR]
                      [COLOR=#d4d4d4] }[/COLOR]

                      [COLOR=#d4d4d4] [/COLOR][COLOR=#6a9955]/**[/COLOR]
                      [COLOR=#6a9955] * Ignore empty row[/COLOR]
                      [COLOR=#6a9955] *[/COLOR]
                      [COLOR=#6a9955] * [/COLOR][COLOR=#569cd6]@param[/COLOR][COLOR=#6a9955] [/COLOR][COLOR=#569cd6]bool[/COLOR][COLOR=#6a9955] $ignoreEmpty[/COLOR]
                      [COLOR=#6a9955] *[/COLOR]
                      [COLOR=#6a9955] * [/COLOR][COLOR=#569cd6]@return[/COLOR][COLOR=#6a9955] $this[/COLOR]
                      [COLOR=#6a9955] */[/COLOR]
                      [COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]public[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]function[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#dcdcaa]ignoreEmptyRow[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$ignoreEmpty[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#569cd6]false[/COLOR][COLOR=#d4d4d4]) {[/COLOR]
                      [COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]$this[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#9cdcfe]parser[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#dcdcaa]ignoreEmptyRow[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$ignoreEmpty[/COLOR][COLOR=#d4d4d4]);[/COLOR]

                      [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]$this[/COLOR][COLOR=#d4d4d4];[/COLOR]
                      [COLOR=#d4d4d4] }[/COLOR]

                      [COLOR=#d4d4d4] [/COLOR][COLOR=#6a9955]/**[/COLOR]
                      [COLOR=#6a9955] * Set sheet index[/COLOR]
                      [COLOR=#6a9955] *[/COLOR]
                      [COLOR=#6a9955] * [/COLOR][COLOR=#569cd6]@param[/COLOR][COLOR=#6a9955] [/COLOR][COLOR=#569cd6]int[/COLOR][COLOR=#6a9955] $index[/COLOR]
                      [COLOR=#6a9955] * [/COLOR][COLOR=#569cd6]@return[/COLOR][COLOR=#6a9955] $this[/COLOR]
                      [COLOR=#6a9955] */[/COLOR]
                      [COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]public[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]function[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#dcdcaa]setSheetIndex[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$index[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#d4d4d4]) {[/COLOR]
                      [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#9cdcfe]$index[/COLOR][COLOR=#d4d4d4] != [/COLOR][COLOR=#569cd6]$this[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#9cdcfe]parser[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#dcdcaa]getSheetIndex[/COLOR][COLOR=#d4d4d4]()) {[/COLOR]
                      [COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]$this[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#9cdcfe]parser[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#dcdcaa]setSheetIndex[/COLOR][COLOR=#d4d4d4]([/COLOR][COLOR=#9cdcfe]$index[/COLOR][COLOR=#d4d4d4]);[/COLOR]

                      [COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]$this[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#9cdcfe]count[/COLOR][COLOR=#d4d4d4] = [/COLOR][COLOR=#569cd6]null[/COLOR][COLOR=#d4d4d4];[/COLOR]
                      [COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]$this[/COLOR][COLOR=#d4d4d4]->[/COLOR][COLOR=#dcdcaa]rewind[/COLOR][COLOR=#d4d4d4]();[/COLOR]
                      [COLOR=#d4d4d4] }[/COLOR]

                      [COLOR=#d4d4d4] [/COLOR][COLOR=#c586c0]return[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#569cd6]$this[/COLOR][COLOR=#d4d4d4];[/COLOR]
                      [COLOR=#d4d4d4] }[/COLOR]
                      [/FONT][/COLOR]

                      Kommentar


                      • #12
                        Ich denke das ich bei set sheet index etwas ändern muss. Ich hab auch schon gelesen wasn ur fehlt mir die richtige Stelle. Oder muss es doch in den parser ?

                        Kommentar


                        • #13
                          https://www.php-resource.de/forum/ph...en-nullen.html
                          Soweit so gut nur wohin ?

                          Kommentar


                          • #14
                            Bei Fragen zu fremden Code wende dich bitten an den Hersteller davon. Ein Forum ist auch nicht dazu gedacht fremden Code zu erklären.

                            Nachdem du das bis jetzt Geheim gehalten hast, offenbar gehts darum:

                            https://packagist.org/packages/asan/phpexcel

                            Diese Library sehe ich zum ersten mal. Ich dachte du redest vom "original" und weit verbreiteten PHPExcel. Da musst du dir wohl jemand suchen, der damit Erfahrung hat. Oder wie gesagt den Hersteller davon ansprechen. Eventuell ist da auch ein Bug der Library. Diese muss dann der Hersteller beheben. Ich würde davon abraten selber an den Dateien herumzuschrauben.
                            Zuletzt geändert von h3ll; 26.07.2021, 14:26.

                            Kommentar


                            • #15
                              Das Problem wird gar keines sein... Denn bei einem Zahlenfeld gibt es keine führenden Nullen.

                              Es gibt zwei Möglichkeiten.

                              * Das Feld als Text definieren -> finde ich doof.
                              * Dem Feld eine Formatierung mitgeben, entsprechend der Länge der Artikel-Nummer, zB "000000000".

                              Bei letzterem Bsp werden führende Nullen "optisch" angezeigt. Denn das ist ja im Endeffekt was du willst.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X