ONLYOFFICE-Makro für das Importieren von CSV- und TXT-Daten in Ihre Tabellenkalkulation

Veröffentlicht von
Vlad

Das Speichern von tabellarischen Daten im CSV-Format ist sehr praktisch und deshalb beliebt. ONLYOFFICE Docs ermöglicht den Import von lokalen CSV- und TXT-Dateien. Doch was, wenn man diese Dateien aus dem Internet importieren möchte, ohne sie herunterladen zu müssen? In diesem Blogbeitrag erfahren Sie einen kleinen Trick dafür.

In unseren früheren Beiträgen haben wir über ONLYOFFICE-Makros gesprochen. Sie basieren auf JavaScript und sind sehr flexibel. Diese Funktion wird uns helfen, den Import von CSV- und TXT-Dateien zu bewältigen. Wie Sie vielleicht schon erraten haben, werden wir also ein weiteres Makro erstellen.

Hinweis! Dieses Makro funktioniert nur in der Desktop-Version von ONLYOFFICE Docs.

Erstellung eines Makros

Zunächst müssen wir die Datei abrufen. JavaScript ist eine der Grundlagen in der Web-Entwicklung und hat alle notwendigen Tools inbegriffen. In unserem Fall werden wir eine AJAX-Anfrage verwenden:

      function LoadFile() {
        $.ajax({
            url: 'your url',
            dataType: 'text',
        }).done(successFunction);
    }
}

Jetzt haben wir die Daten, aber sie sind unverarbeitet, also müssen wir sie formatieren. Zuerst teilen wir die Daten in Zeilen auf:

 function successFunction(data) {
    var arrAllRows = data.split(/\r?\n|\r/);

Dann erhalten wir die aktive Tabellenkalkulation:

var oWorksheet = Api.GetActiveSheet();

Wir haben die Daten des Arrays bereits in Zeilen aufgeteilt, und jetzt teilen wir sie in einzelne Wörter auf:

   for (var singleRow = 0; singleRow < arrAllRows.length; singleRow++) {
            var rowCells = arrAllRows[singleRow].split(',');
}

Dann fügen wir diese Werte in Zellen ein. Dazu werden wir die Methoden GetCells und SetValue verwenden. Die erste Methode wählt den Bereich aus, und die zweite fügt den Wert in die ausgewählte Zelle ein. Die Methode GetCells benötigt zwei Parameter: die Anzahl der Zeilen und die Anzahl der Spalten. Um die Anzahl der Zeilen und Spalten anzugeben, verwenden wir die Variablen i und j und erhöhen sie bei jedem Durchlauf der for-Schleife:

 for (var rowCell = 0; rowCell < rowCells.length; rowCell++) {
               oWorksheet.GetCells(i,j).SetValue(rowCells[rowCell]);
                j = j + 1;
            }
            i = i + 1;
            j = 1;
        }
    }

Um die neuen Werte anzeigen zu können, müssen wir das gesamte Dokument neu berechnen. Dies wird durch die Implementierung der Methode Api.asc_calculate erreicht. Wir haben diese Methode in unserem Makro für die Luftqualität verwendet. Sie ermöglichte es uns, die eingehenden Daten in einem bestimmten Intervall neu zu berechnen. Aber jetzt entfernen wir den Intervallparameter. So wird das Dokument sofort neu errechnet:

  let reload = setInterval(function(){
      Api.asc_calculate(Asc.c_oAscCalculateType.All);
    });

Der gesamte Code des Makros lautet:

(function() {
          function LoadFile() {
        $.ajax({
           url: 'your url',
            dataType: 'text',
        }).done(successFunction);
    }
    function successFunction(data) {
    var arrAllRows = data.split(/\r?\n|\r/);
    var oWorksheet = Api.GetActiveSheet();

    //reference point
    var i = 1;
    var j = 1;

        for (var singleRow = 0; singleRow < arrAllRows.length; singleRow++) {
            var rowCells = arrAllRows[singleRow].split(',');
            for (var rowCell = 0; rowCell < rowCells.length; rowCell++) {
                oWorksheet.GetCells(i,j).SetValue(rowCells[rowCell]);
                j = j + 1;
            }
            i = i + 1;
            j = 1;
        }
    }
    LoadFile();
    let reload = setInterval(function(){
      Api.asc_calculate(Asc.c_oAscCalculateType.All);
    });
    })();

Und nun führen wir unser Makro aus und sehen, wie es funktioniert!

Dieses kleine Makro ist ein perfektes Beispiel für die Vielseitigkeit von JavaScript. Und es ist nur eine der vielen möglichen Implementierungsfällen unserer API-Methoden. Wir möchten Sie ermutigen, zu experimentieren und eigene Skripte zu erstellen. Teilen Sie auch uns Ihre Ideen oder Makros gerne mit. Wir sind immer offen für Diskussionen und Zusammenarbeit. Viel Glück bei Ihren Experimenten!

Veröffentlicht von
Vlad

This website uses cookies. By continuing to browse the website you agree to our privacy policy.

our privacy policy