Conversione dei dati CSV e TXT in una casella combinata compilabile con la macro ONLYOFFICE

5 gennaio 2023By Serge

ONLYOFFICE offre le soluzioni molto potenti che coprono tutte le esigenze della nostra era digitale. A partire dalla versione 7.0, il team esperti di ONLYOFFICE ha esteso le funzionalità dei nostri editor con i moduli compilabili OFORM. Progettati per semplificare il lavoro con i documenti elettronici, i moduli di ONLYOFFICE possono alleviare molte attività banali. Uno dei buoni esempi è l’utilizzo di moduli compilabili per la creazione di un modello di contratto di vendita. Ma cosa succede se le informazioni dei tuoi clienti sono archiviate in file CSV/TXT separati? In questo post, ti mostreremo come creare una macro che importi dati CSV e TXT e li converte in una casella combinata compilabile.

Convert CSV and TXT data into a fillable combo box with ONLYOFFICE macro

Informazioni sui moduli ONLYOFFICE

Le funzionalità estese offrono formati che consentono agli utenti di creare e operare facilmente con moduli compilabili nei loro documenti. Il formato DOCXF è un’estensione di file basata su DOCX che offre un’ampia gamma di strumenti per la creazione e la modifica di moduli. Consente di creare moduli da zero o da un file DOCX esistente. OFORM è un’estensione OOXML per moduli online pronti per la compilazione. L’estensione rende compilabile un modello di modulo e limita la modifica da parte di altri utenti.

I moduli di ONLYOFFICE ereditano la struttura di un documento di testo e includono diverse classi principali:

  • campo di testo
  • casella combinata
  • casella di controllo
  • forma per un’ immagine
  • forma complessa

Queste classi contengono metodi che incorporano la creazione di campi di testo, campi complessi, caselle combinate, elenchi a discesa, pulsanti di opzione, moduli immagine, campi di indirizzi di posta elettronica e telefono.

Useremo una classe combo box per la nostra macro. L’elemento casella combinata incorpora un elenco a discesa di valori che importeremo dal file CSV/TXT esterno.Convert CSV and TXT data into a fillable combo box with ONLYOFFICE macro

 

Creazione di una macro

La sezione Form della nostra documentazione API include il metodo Api.CreateComboBoxForm. Che crea la casella combinata (combo box) con i parametri specificati:

 var oComboBoxForm = Api.CreateComboBoxForm({"key": "Personal information", "tip": "Choose your country", "required": true, "placeholder": "Country", "editable": false, "autoFit": false, "items": ["Latvia", "USA", "UK"]});

Il parametro items contiene l’insieme dei valori visualizzati nell’elenco a discesa. Quindi la nostra linea d’azione è sostituire questo array con l’array di valori ottenuti dal file CSV/TXT esterno.

Ma prima dobbiamo recuperare il file esterno ed elaborare i dati. Abbiamo utilizzato una strategia simile con la macro Importazione dei dati CSV/TXT. Le macro di ONLYOFFICE sono basate su JavaScript, il che le rende estremamente versatili e ci consente di utilizzare le richieste AJAX:

function LoadFile() {
        $.ajax({
            url: 'file:///C:/Users/LEOPARD/Desktop/Book1.csv',
            dataType: 'text',https://wpblog.onlyoffice.com//wp-admin/post-new.php?lang=en#
        }).done(successFunction);
    }
        LoadFile();

Ora che abbiamo recuperato il file, dobbiamo elaborare questi dati grezzi e formattarli. Quindi aggiungiamo la succesFunction. Prenderà i dati e suddividerà il testo in una matrice di elementi per righe:

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

Quindi puntiamo al documento attivo e creiamo la casella combinata con l’array arrAllItems nel parametro items:

 var oDocument = Api.GetDocument();
 var oComboBoxForm = Api.CreateComboBoxForm({ "key": "Personal information1", "tip": "Choose your country", "required": true, "placeholder": "Country", "editable": false, "autoFit": false, "items": arrAllItems });

Successivamente creiamo un paragrafo e vi aggiungiamo la casella combinata:

  var oParagraph = Api.CreateParagraph();
oParagraph.AddElement(oComboBoxForm);

Ora dobbiamo inserire la nostra casella combinata nel documento. Esistono diversi modi per affrontare questa attività, ma si consiglia di utilizzare il metodo InsertContent. Inserisce un elemento proprio dove è posizionato il cursore. Suggeriamo inoltre di specificare nei parametri le proprietà del testo e del paragrafo. Eviterà possibili errori e malfunzionamenti delle macro:

oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });

The entire macro code is the following:

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

   function successFunction(data) {
        var arrAllItems = data.split(/\r?\n|\r/);
        var oDocument = Api.GetDocument();
        var oComboBoxForm = Api.CreateComboBoxForm({ "key": "Personal information", "tip": "Choose your option", "required": true, "placeholder": "Option", "editable": false, "autoFit": false, "items": arrAllItems });
        var oParagraph = Api.CreateParagraph();
oParagraph.AddElement(oComboBoxForm);
oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });
    }
})();

Ora eseguiamo la nostra macro e vediamo come funziona!

Ti preghiamo di notare!

  • Per inserire una casella combinata, premi lo ‘spazio’ dopo aver eseguito una macro.
  • Per inserire più caselle combinate nel documento utilizza diversi parametri chiave del metodo Api.CreateComboBoxForm method.

Questa macro è solo uno dei tanti esempi di cosa puoi fare implementando i nostri metodi API. Prova a sperimentare e speriamo che utilizzerai i concetti delineati in questo post per creare le tue macro.

Le nostre macro sono basate su JavaScript, il che le rende estremamente versatili e pratiche. Non esitate a fare domande o condividere le vostre idee con noi. Siamo aperti al confronto e alla collaborazione. Buona fortuna per i tuoi piani esplorativi!