Home
» UFFICIO MS
»
Come utilizzare le macro di ONLYOFFICE per automatizzare la pulizia dei fogli di calcolo
Come utilizzare le macro di ONLYOFFICE per automatizzare la pulizia dei fogli di calcolo
La pulizia dei fogli di calcolo è un'operazione ripetitiva: i nomi esportati contengono spazi aggiuntivi, il testo incollato include spazi unificatori e formule o ID possono essere danneggiati da sostituzioni indiscriminate. Una macro ONLYOFFICE può standardizzare il testo in un intervallo definito, lasciando inalterati i valori numerici e le celle contenenti formule. L'esempio seguente gestisce solo gli spazi bianchi; la rimozione dei duplicati, la conversione delle date e l'eliminazione delle righe vuote richiedono regole separate.
Documentazione verificata il 6 ottobre 2026. Le macro ONLYOFFICE utilizzano JavaScript con l'API JavaScript di Office, non Excel VBA. La documentazione corrente dell'editor apre l'area di lavoro delle macro da Visualizza → Macro . L'aspetto esatto della barra degli strumenti può variare tra le edizioni desktop e quelle ospitate.
Attività di pulizia gestibili da questa macro
L'esempio rimuove gli spazi o le tabulazioni iniziali e finali, converte gli spazi unificatori in spazi normali e comprime gli spazi o le tabulazioni ripetuti all'interno del testo. Ignora formule e valori che non sono stringhe. Questo ambito ristretto riduce la possibilità di modificare date, importi o celle calcolate durante la preparazione di un'importazione ricorrente.
Problema di dati
Cosa fa il campione
Revisione prima dell'automazione
Spazi iniziali o finali e tabulazioni
Li rimuove dalle celle di testo
Generalmente sicuro per nomi ed etichette, ma controlla i campi in cui la spaziatura è importante
spazi non divisibili
Sostituisce gli spazi normali
Utile per il testo copiato dal web; verifica a campione il campo sorgente
spazi o tabulazioni ripetuti
Crolla ogni corsa in uno spazio
Non utilizzare su testo a larghezza fissa o con rientro intenzionale
Formule, numeri e valori booleani
li lascia invariati
Verificare che le celle formulate continuino a essere calcolate dopo l'esecuzione.
Righe duplicate, date duplicate, righe vuote
Non li cambia
Definisci prima le regole aziendali; non si tratta di una semplice pulizia estetica.
1. Preparare una copia e definire l'intervallo
Salva una copia di lavoro del foglio di calcolo prima di eseguire qualsiasi macro che modifichi le celle. Identifica il foglio di lavoro e le righe di dati da pulire. Nel codice seguente, A2:D500è presente un intervallo di esempio: si presume che la riga 1 contenga le intestazioni e che i dati siano presenti nelle colonne dalla A alla D. Modifica questo indirizzo in modo che corrisponda al tuo foglio. Utilizza un intervallo delimitato che includa i record desiderati ed escludi note, formule o colonne non correlate.
Un piccolo foglio di lavoro fornisce un campione delimitato; mantenere la riga di intestazione al di fuori dell'area di pulizia.
Per un primo test, copia alcuni record rappresentativi in un foglio temporaneo oppure duplica il file e riduci l'intervallo, ad esempio A2:D10. Includi esempi con spazi normali, testo incollato, celle vuote e formule in modo da poter verificare come la macro gestisce ciascun caso.
2. Apri l'editor di macro ONLYOFFICE
Apri il foglio di calcolo nell'editor di fogli di calcolo di ONLYOFFICE e scegli Visualizza → Macro . Crea una nuova macro nella finestra delle macro oppure seleziona un nuovo modulo, quindi assegnale un nome chiaro, ad esempio CleanTextWhitespace. La guida ufficiale di ONLYOFFICE per iniziare a usare le macro descrive questo punto di partenza e il controllo dell'esecuzione.
La barra multifunzione Visualizza contiene il controllo Macro utilizzato per aprire l'area di lavoro delle macro.
Se le macro sono disabilitate dalle impostazioni dell'editor, consulta Impostazioni → Impostazioni avanzate → Macro . ONLYOFFICE documenta le opzioni per disabilitare le macro, visualizzare una notifica o abilitarle. Per una cartella di lavoro non creata da te, non abilitare tutte le macro a livello globale solo per eseguire uno script; esamina il codice e segui le policy della tua organizzazione.
3. Incolla questa macro delimitata e consapevole della formula
(function () {
var oSheet = Api.GetActiveSheet();
var oRange = oSheet.GetRange("A2:D500");
var nRows = oRange.GetRowsCount();
var nCols = oRange.GetColumnsCount();
for (var r = 1; r <= nRows; r++) {
for (var c = 1; c <= nCols; c++) {
var oCell = oRange.GetCells(r, c);
var sFormula = oCell.GetFormula();
// Do not replace formulas with their displayed results.
if (sFormula) {
continue;
}
var v = oCell.GetValue();
// Restrict this cleanup to text constants.
if (typeof v !== "string") {
continue;
}
var sClean = v
.replace(/\u00A0/g, " ")
.replace(/[ \t]+/g, " ")
.replace(/^[ \t]+|[ \t]+$/g, "");
// SetValue treats strings beginning with "=" as formulas.
if (sClean.charAt(0) === "=") {
continue;
}
if (sClean !== v) {
oCell.SetValue(sClean);
}
}
}
})();
Il riquadro del codice mostra l'intervallo e i metodi di lettura delle celle utilizzati dalla macro di pulizia.
I contatori di riga e colonna passati GetCellssono relativi all'intervallo selezionato; gli esempi dell'API utilizzano posizioni numerate per accedere a una cella. La macro legge prima la formula di ogni cella e la salta se presente. Quindi legge il valore e modifica solo le stringhe che effettivamente cambiano. Anche una stringa che diventerebbe una formula con il segno di uguale dopo la rimozione degli spazi bianchi viene saltata perché SetValuepuò interpretare un segno di uguale iniziale come una formula.
L'espressione whitespace lascia intenzionalmente inalterate le interruzioni di riga. Non modifica maiuscole, punteggiatura, valori numerici o numerazioni seriali delle date. Se la fonte contiene note su più righe, campi a larghezza fissa o identificatori con spazi speciali, testare tali colonne separatamente e adattare la policy anziché applicare una normalizzazione più ampia.
4. Eseguire una volta, quindi verificare il risultato
Esegui la macro dall'editor di macro. Poiché aggiorna le celle nell'intervallo selezionato, controlla il testo modificato nella copia di lavoro prima di salvare sovrascrivendo il file originale. Confronta alcune righe con l'originale, incluse la prima e l'ultima riga dell'intervallo. Verifica che le intestazioni siano rimaste invariate, che le formule siano ancora calcolate correttamente e che le celle numeriche, come date, valuta e ID, non siano cambiate.
Utilizza il foglio di lavoro per verificare a campione le righe rappresentative e confrontarle con la copia originale.
Per fogli di calcolo di grandi dimensioni, filtra o cerca spazi sospetti prima e dopo l'esecuzione e confronta il numero di righe. La macro non elimina righe, non rimuove i duplicati, non converte le date né riempie le celle vuote, quindi questi controlli dovrebbero concentrarsi sui valori di testo. Se hai bisogno di una traccia di controllo visibile, aggiungi una colonna di revisione separata o copia i risultati puliti in un foglio di staging anziché scrivere messaggi di stato in una cella qualsiasi.
Regole di pulizia comuni che richiedono una decisione separata
Record duplicati: prima di rimuovere le righe, decidi quali colonne definiscono un duplicato e se le transazioni ripetute sono valide. Due nomi identici non rappresentano necessariamente la stessa persona o lo stesso ordine.
Celle e righe vuote: una cella vuota, uno zero e un valore di testo come "N/D" hanno significati diversi. Non sostituirli o eliminarli senza una regola dati.
Date e numeri memorizzati come testo: scegli prima il formato e le impostazioni locali previsti. L'esempio evita di convertire questi valori perché una stringa come questa 03/04/2026è ambigua in diverse regioni.
Zeri iniziali: Importa gli identificatori come come 00127testo. Se un foglio di calcolo li ha già memorizzati come numeri, la rimozione degli zeri iniziali non può ripristinare gli zeri mancanti.
Normalizzazione delle maiuscole/minuscole: convertire gli indirizzi email in minuscolo o i codici statali in maiuscolo può essere utile in campi specifici, ma applicarlo a nomi o descrizioni di prodotti può compromettere la corretta capitalizzazione.
Utilizzate le macro ONLYOFFICE quando è possibile esprimere con precisione una regola ripetibile e testarla su una copia. Il sistema di macro è basato su JavaScript anziché su VBA, è associato a un documento anziché essere disponibile a livello globale ed è soggetto a restrizioni per quanto riguarda l'accesso diretto al file system e alla rete, come spiegato nelle FAQ sulle macro ONLYOFFICE . Questa limitazione restringe le operazioni che una macro può eseguire al di fuori dell'editor, ma una macro può comunque modificare il contenuto della cartella di lavoro; pertanto, è fondamentale rivedere e testare il codice prima di eseguirlo.
Per le importazioni ricorrenti, conserva lo script in un modello controllato o in una copia del documento e utilizza una breve lista di controllo: conferma il foglio attivo, aggiorna l'indirizzo dell'intervallo, escludi intestazioni e formule, eseguilo su una copia, verifica a campione le stringhe modificate e confronta la cartella di lavoro finale con l'originale prima di salvarla o condividerla.