9

Import der Daten einer csv-Datei, die in einem Bildfeld abgelegt ist

Ninox bietet die Möglichkeit über das Zahnradsymbol Daten, die unter anderem in Form einer csv-Datei vorliegen zu importieren.
Bei einmaligen Importen ist dies eine gute Lösung.
Wenn man aber wiederkehrend immer die gleich aufgebaute csv importieren muss, kostet es immer wieder Zeit die manuelle Zuordnung der Daten zur Tabelle vorzunehmen.
In diesem Fall, besteht die Möglichkeit eine Art Automatismus in Ninox zu erstellen.
Man legt die csv_Datei in einem Bildfeld in Ninox ab und kann entweder automatisch (Trigger nach Update) oder über einen Button aus den Daten der CSV-Datei die Tabelle füllen.

Dafür habe ich eine einfache Beispiel-DB erstellt, die zeigt, wie man so etwas umsetzen könnte.
Die erfordert etwas Zeit für die Scripterstellung, aber spart auf Dauer für diese Fälle doch Zeit.

14 Antworten

null
    • john_eans
    • vor 2 JahrenFri, September 9, 2022 at 5:13 PM UTC
    • Gemeldet - anzeigen

    Lösung für die offline-Version / MacApp gibts vermutlich nicht, oder?

      • UweG
      • vor 2 JahrenSat, September 10, 2022 at 6:46 AM UTC
      • Gemeldet - anzeigen

      Johannes Faller Doch es gibt eine Möglichkeit, die eines Zwischenschrittes bedarf.
      Man öffnet die csv-Datei vorab auf dem Rechner mit einem Editor.
      Dann kopiert man den Inhalt und fügt ihn in ein mehrfach Textfeld in Ninox ein.
      Aus diesem Textfeld kann man analog zur CloudVersion eine Ninox Tabelle befüllen.

      Es wäre schön, wenn man analog zur NinoxCloud nur das CSV-File in ein Bildfeld packt und der Rest automatisch passiert. Das ist etwas tricky und ich hätte auch eine Idee, wie es für die reine App funktionieren könnte. Das muss ich aber noch testen.

      Anbei die überarbeitete Ninox-DB mit beiden Möglichkeiten.

      • john_eans
      • vor 2 JahrenSat, September 10, 2022 at 6:06 PM UTC
      • Gemeldet - anzeigen

      UweG Absolut genial, das erleichtert ja so einiges...

    • Stefan_Gutekunst
    • vor 2 JahrenWed, September 28, 2022 at 6:30 AM UTC
    • Gemeldet - anzeigen

    Hallo guten Morgen Zusammen,

    ich stehe bei dem CSV Import vor eine Lösungsproblem, und komme nicht weiter.

    Ich habe eine Haupttabelle, mit festem Bezug, nun habe ich meine Positionen die ich Importieren möchte.

    Ich bekomme es aber nicht hin das Ninox auf das Schlüsselfeld als Beziehung (Haupttabelle) im portiert.

     

    Sprich Leistungsverzeichnis 1(Schlüssel) myID This

    Positionen zu Leistungsverzeichnis 1

     

    Wie kann ich das lösen?

    Liebe Grüße Stefan und einen schönen Tag.

    • UweG
    • vor 1 JahrSun, July 9, 2023 at 7:31 AM UTC
    • Gemeldet - anzeigen

    Ich habe den Import mal erweitert:
    Zum einen ist ein zusätzliches Bsp vorhanden, welches auch zeigt, wie man Verlinkungen mit dem Import zuordnet.
    Zum anderen habe ich mal den Import der CSV in eine andere DB ausgelagert und nutze die Ninox-Rest-API um die importierten Daten von dort in die Zieltabelle zu schreiben.
    Bei sehr großen Importen sollte damit die Nutzbarkeit der Zieltabelle erhöht werden, da man den angestoßenen Import nicht abwarten muss bevor man weiter arbeiten kann.
    Das kostet in der public Cloud aber API Zugriffe.

      • Ninox-Professional
      • planoxpro
      • vor 1 JahrSun, July 9, 2023 at 9:19 AM UTC
      • Gemeldet - anzeigen

      Und das bei der Hitze ... ;) Vielen Dank!

      • Wegener & Hinz GmbH
      • green_cup
      • vor 1 JahrSun, July 9, 2023 at 9:25 AM UTC
      • Gemeldet - anzeigen

       Hallo, ist die API_ImportCSV - DB gesperrt. Ich wollte mir das angucken kann aber in der Tabelle nicht den Datensatz öffnen oder einen neuen anlegen.

      • Wegener & Hinz GmbH
      • green_cup
      • vor 1 JahrSun, July 9, 2023 at 9:27 AM UTC
      • Gemeldet - anzeigen

       Kleine Ergänzung, in der Android-App geht das nicht. In der Cloud keine Probleme.

      • UweG
      • vor 1 JahrSun, July 9, 2023 at 11:21 AM UTC
      • Gemeldet - anzeigen

       Sorry, ich habe kein Android zum testen. Das muss ich dann nächste Woche prüfen.

    • Andreas_Kessler
    • vor 12 TagenFri, April 18, 2025 at 10:59 AM UTC
    • Gemeldet - anzeigen

    Hi. Hab das Import Script soweit hingekriegt. (Appversion)Das Datum Jahr aber ist leider immer 09.04.1925. im csv ist es als 09.04.25. also dd. mm. yy. Was muss ich im Scriptschnippsel hier ändern : let vYear := number(substr(vDate, 6, 2));

    Damit es 2025 statt 1925 ausgibt  also hundert jahre diff! Thx 4 anwser

      • Ninox-Professional
      • planoxpro
      • vor 12 TagenFri, April 18, 2025 at 11:50 AM UTC
      • Gemeldet - anzeigen

       Ohne den Kontext des Scriptes zu kennen ... Versuch's mal so:

      let vYear := number("20" + substr(vDate, 6, 2));

      Ich würde allerdings generell versuchen, die CSV-Daten mit vierstelliger Jahreszahl zu speichern.

      • Andreas_Kessler
      • vor 11 TagenSat, April 19, 2025 at 7:09 AM UTC
      • Gemeldet - anzeigen

      Danke für die Lösung, das geht ist. Ist, wie du sagst aber nicht optimal. Da das csv von meiner Bank mit 2-stelliger Jahreszahl daherkommt kann ich das leider nicht ändern oder das in Handarbeit zu ändern würde den Nutzen der Funktion zunichte machen.

      Es ist aber schon eigenartig, dass der Befehl ein Datum aus dem letzten Jahrhunder generiert!?

      Hier der Kontext der Variable, mit deinem Vorschalg der vorangestellten 20:

      "// Datum in Textform DD.MM.YYYY in Ninox-Datum umwandeln";
              function fx_TextToDate(vDate : text) do
                  let vDay := number(substr(vDate, 0, 2));
                  let vMonth := number(substr(vDate, 3, 2));
                  let vYear := number("20" + substr(vDate, 6, 2));
                  date(vYear, vMonth, vDay)
      end;

    • Josef_Koenig
    • vor 12 TagenFri, April 18, 2025 at 1:14 PM UTC
    • Gemeldet - anzeigen

    Ich habe für den Import von csv-Daten einen anderen Weg eingeschlagen:
    Und zwar habe ich mir in EXCEL ein Makro geschrieben, das ich dann über einen eigenen Button im Menüband aufrufe. Dieses Makro formatiert mir alle csv-Daten exakt so, wie ich sie für den Import in NINOX benötige. Ich denke, dass die Formatierungsmöglichkeitne in EXCEL sehr umfangreich sind und praktisch jede csv-Datei in das gewünschte Importformat konvertieren können.

    • Andreas_Kessler
    • vor 11 TagenSat, April 19, 2025 at 7:10 AM UTC
    • Gemeldet - anzeigen

    DAnke für den Tip, wär auch eine Möglichkeit