Conversione dei dati CSV e TXT in una casella combinata compilabile con la macro ONLYOFFICE
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.
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.
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!