Migliore libreria Excel per Python nel 2026: 4 validi candidati testati

2026-11-03 02:49:09 Allen Yang
AI Summarize:
ChatGPT
ChatGPT ✓
Claude ✓
Grok ✓
Perplexity ✓
Quick
Quick
Concise overview
Highlights
Key takeaways
Detailed
Structured explanation
Brief
One sentence summary
Summarize |

A spreadsheet flowing into PDF, single-file HTML and a protected workbook, representing the four Python Excel options

Lunedì devi caricare un foglio di calcolo in un DataFrame. Mercoledì un cliente ha inviato un modello di cartella di lavoro che deve essere aggiornato senza perdere i relativi grafici. Venerdì il team finance ha bisogno che il report venga esportato in PDF, mentre la cartella di lavoro originale deve rimanere protetta da password. Scegliere la migliore libreria Excel per Python significa abbinare la libreria a questi diversi compiti. Una scelta sbagliata potrebbe non emergere subito: i grafici scompaiono dopo il salvataggio, le formule non hanno risultati calcolati utilizzabili oppure una cartella di lavoro binaria .xlsb non può essere letta dalla libreria selezionata.

Per aiutare gli sviluppatori a fare la scelta giusta, abbiamo testato quattro librerie usando fixture di test condivise e un dataset comune di 50.000 righe: pandas 3.1.0, openpyxl 3.1.5, XlsxWriter 3.3.1 e Spire.XLS for Python 16.8.2 (commerciale). Abbiamo valutato il supporto ai formati di file, la modifica e la conservazione delle cartelle di lavoro, la gestione delle formule, la conversione in PDF e HTML, la crittografia delle cartelle di lavoro, le prestazioni, l'uso della memoria, i requisiti di installazione e le licenze. I risultati mostrano cosa fa bene ciascuna libreria, dove si trovano i suoi limiti e quale opzione può essere la più adatta per progetti diversi. Questo confronto si concentra su tre librerie open source e un SDK commerciale; altre soluzioni commerciali sono fuori dal suo ambito.


Quale libreria Excel per Python dovresti scegliere?

Ciascuna delle tre librerie open source svolge molto bene un compito, mentre Spire.XLS copre i progetti in cui questi compiti devono essere eseguiti insieme. La tabella seguente fornisce la versione breve. Le sezioni successive spiegano il ragionamento e mostrano i dati di test.

Libreria Ideale per Considerazione a lungo termine
pandas Analisi dei dati Richiede altri strumenti per operazioni a livello di cartella di lavoro
openpyxl Modifica di modelli XLSX Nessun motore di calcolo delle formule integrato
XlsxWriter Creazione di report formattati Non può riaprire cartelle di lavoro esistenti
Spire.XLS Elaborazione Excel in più passaggi Licenza commerciale con supporto del fornitore e opzioni di aggiornamento

Se devi solo leggere dati in un DataFrame, pandas con il motore calamine è sufficiente e puoi fermarti qui. Se il tuo progetto sta crescendo verso l'automazione, consulta la nostra guida su automatizzare la scrittura in Excel in Python.


In cosa eccellono le librerie Excel open source per Python

pandas, openpyxl e XlsxWriter sono complementari, non intercambiabili. Ciascuna eccelle in un singolo compito, ed è per questo che molti progetti finiscono per usarne due o tre affiancate.

pandas: lettura e analisi di dati tabellari

pandas trasforma un foglio di lavoro in un DataFrame, che è la forma giusta per l'analisi. Con il motore calamine legge file .xlsx, .xlsb, .ods e .xls, ed è stato il lettore più veloce nel nostro test: 294 ms per 50.000 righe × 6 colonne (mediana di cinque esecuzioni). La formattazione è possibile tramite Styler con jinja2, che riempie e applica il grassetto alle celle come previsto. In pandas 3.1, i nostri tentativi di formato numerico non hanno avuto effetto e le celle sono rimaste su Generale.

Il confine è concettuale. Un DataFrame non è una cartella di lavoro. Riscriverlo con to_excel ricostruisce il file, quindi grafici, immagini e tabelle pivot non vengono trasferiti. Le formule possono essere scritte ma non vengono calcolate. Per approfondire la lettura, consulta lettura di file Excel in Python e la documentazione I/O di Excel di pandas.

openpyxl: modifica di file .xlsx e .xlsm esistenti

openpyxl carica una cartella di lavoro, consente di modificarla e la salva. Nella nostra cartella di lavoro di test, un ciclo di andata e ritorno ha mantenuto grafici, immagini, formattazione condizionale, convalida dati, celle unite, riquadri bloccati, filtri e parti di tabelle pivot, ed Excel 16.0 ha aperto il risultato senza errori. È un risultato valido per le nostre fixture, non una garanzia per ogni forma DrawingML o progetto VBA.

I suoi limiti sono specifici. Supporta quattro formati OOXML (.xlsx, .xlsm, .xltx, .xltm). Non dispone di un motore di calcolo, quindi le formule restano non calcolate. Non può aprire file protetti da password senza uno strumento esterno come msoffcrypto. Le tabelle pivot possono essere conservate, ma crearne una significa assemblare manualmente la cache e la definizione tramite la chiamata a basso livello add_pivot. La sua modalità write_only ha usato la memoria minima tra tutti i writer testati, 79,4 MB. Documentazione: openpyxl.

XlsxWriter: generazione di nuovi report

XlsxWriter scrive nuovi file .xlsx e li scrive bene. Supporta formati, grafici, immagini, formattazione condizionale, convalida dati e formule con valori memorizzati nella cache. È stato il writer più veloce nel nostro test con 1,74 s per 50.000 righe, davanti a ogni altro metodo di questo test, inclusi pandas e openpyxl.

Non può leggere o modificare un file esistente. Non consente la creazione di tabelle pivot, non supporta la crittografia e non produce output .xlsb o .ods. Documentazione: XlsxWriter.


Quando le librerie Excel di base non bastano

Le librerie open source smettono di essere sufficienti quando un compito supera il confine tra le loro specialità. Cinque situazioni ricorrono frequentemente.

  1. Più formati di file in un'unica pipeline. pandas può leggere xls, xlsb e ods, ma restituisce un DataFrame e non può salvare la cartella di lavoro modificata nello stesso formato. openpyxl e XlsxWriter non gestiscono affatto questi formati.
  2. Formule che devono essere ricalcolate dopo una modifica. openpyxl conserva le formule ma non può valutarle. pandas scrive formule senza risultati, e il valore memorizzato nella cache dipende dal motore sottostante: un valore vuoto con openpyxl, un segnaposto 0 con xlsxwriter. Excel ricalcola all'apertura, ma qualsiasi altro lettore non vede nulla di utile.
  3. Tabelle pivot e altri oggetti complessi. openpyxl può conservare una tabella pivot esistente ma non offre un modo di alto livello per crearne una. XlsxWriter e pandas non ne offrono alcuno.
  4. Output in PDF, HTML o immagini. Convertire un foglio di lavoro in un PDF impaginato richiede una libreria aggiuntiva, e la gestione del layout di pagina, del ridimensionamento e dell'impaginazione resta a tuo carico.
  5. Protezione tramite password. Nessuna delle tre librerie open source può scrivere una cartella di lavoro che richieda una password per l'apertura.

Niente di tutto ciò rende gli strumenti open source una cattiva scelta. Il progetto è semplicemente cresciuto oltre ciò che copre uno strumento monofunzionale, e il costo si sposta sul codice di collegamento: conversioni di formato, passaggi di file tra librerie e aggiornamenti separati delle dipendenze. Ogni strumento aggiuntivo aggiunge la propria dipendenza, le proprie eccezioni e il proprio modo di passare i file.


Cosa puoi fare con Spire.XLS for Python

Spire.XLS for Python è una libreria commerciale che gestisce lettura, modifica, calcolo, conversione e protezione di file Excel attraverso un unico modello a oggetti per la cartella di lavoro. Non richiede l'installazione di Microsoft Office. Ecco cosa copre in pratica, con i limiti indicati.

Lettura e scrittura di più formati Excel

LoadFromFile apre file .xls, .xlsx, .xlsm, .xlsb e .ods, mentre SaveToFile scrive in xlsx, xls, xlsb, xlsm, ods, csv, pdf, html e png. I CSV vengono caricati con un argomento delimitatore, ad esempio LoadFromFile("data.csv", ","). Un caso tipico è un sistema upstream che esporta .xlsb mentre il consumer downstream si aspetta .xlsx o PDF.

from spire.xls import *

wb = Workbook()
wb.LoadFromFile("upstream.xlsb")
wb.SaveToFile("converted.xlsx", ExcelVersion.Version2016)

Una nota sulla compatibilità: nel nostro test, Excel 16.0 ha aperto i file .xlsb e .ods prodotti da Spire.XLS, mentre i lettori di pandas (pyxlsb e calamine) non hanno aperto quei particolari file. Esegui test di regressione sui formati legacy con i lettori che usano i tuoi sistemi downstream.

Modifica di cartelle di lavoro esistenti e creazione di tabelle pivot

Carica una cartella di lavoro, modificala, salvala. Nella nostra cartella di lavoro di test, grafici, immagini, formattazione condizionale, convalida dati, celle unite, riquadri bloccati, filtri e tabelle pivot hanno tutti superato il ciclo di andata e ritorno, senza errori all'apertura del file in Excel. Le forme DrawingML complesse dovrebbero comunque essere verificate con i tuoi file reali.

La creazione di una tabella pivot richiede due chiamate:

sheet = wb.Worksheets[0]
cache = wb.PivotCaches.Add(sheet.Range["A1:F20"])
pivot = sheet.PivotTables.Add("SalesPivot", sheet.Range["H3"], cache)

L'intervallo di origine deve iniziare con una riga di intestazione, e queste chiamate creano la struttura della tabella pivot; i campi riga e valore vengono configurati successivamente. Consulta creare o gestire tabelle pivot in Excel per la configurazione dei campi. Nel nostro test, Excel ha aperto il file risultante e ha contato una tabella pivot.

Ricalcolo di formule e valori memorizzati nella cache

Tre termini sono importanti qui: la formula, il suo risultato memorizzato nella cache e il ricalcolo. Un file con una formula ma senza risultato memorizzato nella cache appare vuoto a qualsiasi lettore che non esegua calcoli. Spire.XLS include un motore di calcolo, quindi chiamare CalculateAllValue() calcola i risultati prima del salvataggio, e gli altri strumenti che leggono il file possono vederli.

wb.LoadFromFile("model.xlsx")
wb.CalculateAllValue()
wb.SaveToFile("model_calculated.xlsx", ExcelVersion.Version2016)

openpyxl e pandas non possono eseguire questo passaggio. XlsxWriter può memorizzare un valore nella cache, ma solo se fornisci tu stesso il numero. Per la sintassi delle formule ed esempi a livello di cella, consulta aggiungere o leggere formule in Excel.

Conversione di Excel in PDF, HTML e immagini

Per il PDF, imposta prima il layout di pagina. Con orientamento orizzontale e ridimensionamento adatta alla pagina, il nostro grafico di test è entrato nella pagina invece di essere tagliato.

sheet = wb.Worksheets[0]
sheet.PageSetup.Orientation = PageOrientationType.Landscape
sheet.PageSetup.FitToPagesWide = 1
sheet.PageSetup.FitToPagesTall = 1
wb.SaveToFile("report.pdf", FileFormat.PDF)

L'output HTML predefinito è un frameset con una cartella di risorse. Impostando HTMLOptions.ImageEmbedded = True si produce un unico file autonomo (61 KB nel nostro test, con due immagini incorporate come base64). L'esportazione di immagini è disponibile tramite ToImage. Consulta la nostra guida su conversione di Excel in PDF in Python per i dettagli sul layout. I limiti dell'edizione di prova sono trattati nella sezione sulle licenze più avanti.

Protezione delle cartelle di lavoro Excel con password

Protect("password") imposta una password di apertura. Nel nostro test il file salvato è diventato un contenitore crittografato che non poteva essere aperto senza la password, e Spire.XLS è riuscito a riaprirlo fornendo la password. Questo è adatto a casi di consegna di report e conformità. Le protezioni a livello di autorizzazione, come il blocco di fogli specifici, si configurano separatamente; per queste fai riferimento alla documentazione ufficiale. Nota che, nell'overload a due stringhe, il secondo argomento di SaveToFile è un delimitatore CSV, non una password.


Creazione di un flusso di lavoro di elaborazione Excel in più passaggi

Un servizio di reportistica mensile mostra chiaramente la differenza. Il compito: leggere un file .xlsb upstream, aggiornare i suoi dati di input, ricalcolare le formule, produrre un PDF, crittografare la copia Excel e salvarla come .xlsx.

pandas + openpyxl + 2 altri strumenti XlsxWriter Spire.XLS
Lettura .xlsb ✅ (solo dati) ❌ ✅
Mantieni oggetti della cartella di lavoro No (nel percorso xlsb) ❌ ✅
Ricalcola formule ❌ ❌ ✅
Esporta PDF Richiede una libreria aggiuntiva Richiede una libreria aggiuntiva ✅
Crittografa Richiede una libreria aggiuntiva ❌ ✅
Dipendenze per il compito 4 o più 1 (solo scrittura) 1

L'approccio open source funziona, ma distribuisce il compito su almeno quattro strumenti: uno per leggere il formato binario, uno per modificare, uno per generare un PDF e uno per crittografare, più un convertitore se devi conservare gli oggetti della cartella di lavoro. Ogni passaggio è un file scritto da una libreria e riletto da un'altra. Con Spire.XLS gli stessi passaggi vengono eseguiti su un unico oggetto cartella di lavoro:

from spire.xls import *

wb = Workbook()
wb.LoadFromFile("monthly_input.xlsb")        # 1. read legacy format

sheet = wb.Worksheets[0]
sheet.Range["B2"].NumberValue = 125000        # 2. update an input value

wb.CalculateAllValue()                        # 3. recalculate formulas

sheet.PageSetup.Orientation = PageOrientationType.Landscape
sheet.PageSetup.FitToPagesWide = 1
sheet.PageSetup.FitToPagesTall = 1
wb.SaveToFile("monthly_report.pdf", FileFormat.PDF)   # 4. PDF

wb.Protect("s3cret")                          # 5. encrypt
wb.SaveToFile("monthly_report.xlsx", ExcelVersion.Version2016)
wb.Dispose()

A monthly sales report converted to PDF with Spire.XLS: formulas recalculated, table formatting preserved, and the chart rendered intact.

Costo totale di sviluppo e manutenzione

Non abbiamo misurato il tempo risparmiato e questo articolo non rivendica un numero. La differenza che possiamo descrivere è la complessità: quante fasi, dipendenze e interfacce coinvolge il compito.

Dimensione Combinazione open source Spire.XLS
Integrazione Passaggi di dati e conversioni di formato tra strumenti Un'unica API per la cartella di lavoro
Manutenzione Diversi componenti da aggiornare e mantenere compatibili Un'unica linea di versione del prodotto
Risoluzione dei problemi Problemi distribuiti tra progetti separati Un unico punto di accesso, più il supporto del fornitore
Supporto Community e tracker dei problemi Canali di supporto ufficiali, in base alla licenza

Il riepilogo è: una libreria di elaborazione Excel, non una dipendenza. Il tuo progetto userà comunque altri pacchetti. Ciò che cambia è che le fasi Excel condividono un unico modello a oggetti.

Vuoi testare tu stesso il flusso di lavoro? Inizia con Free Spire.XLS for Python per la lettura e scrittura di xlsx e per piccoli report, oppure usa la versione di prova di Spire.XLS for Python per valutare l'API completa.


Prestazioni, distribuzione, supporto e manutenzione

Benchmark delle prestazioni

Abbiamo eseguito ogni operazione in un processo separato con un'esecuzione di riscaldamento scartata e poi cinque esecuzioni misurate, riportando la mediana. Il dataset era di 50.000 righe × 6 colonne su una macchina Windows x64 (8 core logici, 7,8 GB di RAM, Python 3.12).

Attività Metodo Mediana Memoria di picco
Lettura pandas (calamine) 294 ms 108,2 MB
Lettura Spire.XLS 1.456 ms 312,2 MB
Lettura openpyxl read_only 1.704 ms 43,9 MB
Lettura pandas (motore openpyxl) 2.177 ms 91,9 MB
Scrittura XlsxWriter 1.744 ms 118,8 MB
Scrittura pandas → xlsxwriter 3.477 ms 118,2 MB
Scrittura openpyxl write_only 3.803 ms 79,4 MB
Scrittura Spire.XLS InsertArray (per colonna) 3.987 ms 325,2 MB
Scrittura pandas → openpyxl 5.205 ms 173,6 MB

XlsxWriter è il writer più veloce, pandas con calamine è il lettore più veloce e la modalità di sola scrittura di openpyxl usa la memoria minima. Questi strumenti specializzati restano la scelta migliore per il throughput grezzo; Spire.XLS è l'opzione quando un unico flusso di lavoro richiede diverse attività Excel. I suoi dati di lettura, scrittura e memoria sono nella tabella sopra. Il motivo per sceglierlo è la copertura, non il throughput. Questi numeri provengono da una singola macchina e da un singolo carico di lavoro, quindi trattali come riferimento e non come classifica.

Distribuzione e compatibilità

Nessuna delle quattro librerie richiede Microsoft Office. Excel era installato sulla nostra macchina di test solo per aprire i file generati ai fini della validazione; nessuna conversione ha avviato un processo Excel. Tutte e quattro sono state eseguite su Python 3.14.6.

pandas openpyxl XlsxWriter Spire.XLS
Dimensione dell'installazione 45 MB (+ numpy 25 MB) 1,8 MB 1,6 MB 70,6 MB
Importazione a freddo 788 ms 524 ms 230 ms 1.027 ms

Spire.XLS ha un'installazione più grande, 70,6 MB, anche se lo stack di pandas è comparabile una volta incluso numpy. Per le immagini container e gli avvii a freddo, valuta questo aspetto rispetto ai pacchetti che può sostituire in un flusso di lavoro in più passaggi.

Aggiornamenti continui e manutenzione del prodotto

Il team di prodotto Spire.XLS conferma una cadenza di rilascio mensile per la linea di prodotto. Per il pacchetto Python, il registro PyPI mostra rilasci regolari nel 2026: 16.2.0 (5 febbraio), 16.4.0 (8 aprile), 16.5.0 (7 maggio), 16.6.0 (18 giugno), 16.7.1 (17 luglio) e 16.8.2 (25 agosto). La versione 16.8.2 ha aggiunto il supporto per la funzione di formula TEXTSPLIT e risolto problemi relativi a OFD, secondo le note di rilascio ufficiali. Il pacchetto Python segue la stessa linea di rilascio; controlla le note di rilascio per la versione che prevedi di distribuire.

Supporto tecnico e risorse per sviluppatori

Spire.XLS for Python include documentazione API, esempi di codice, tutorial, un forum per sviluppatori e supporto via email. Le licenze commerciali includono un anno di aggiornamenti gratuiti e supporto tecnico, secondo i termini della licenza. Gli obiettivi di risposta dipendono dal tipo di licenza. Secondo la pagina del supporto a pagamento per questo prodotto, le licenze Developer OEM, Site e Small Business indicano 48 ore lavorative, Site OEM indica 24 ore lavorative, mentre i livelli Gold e Platinum offrono risposta in 24 ore con supporto esperto. Conferma i termini attuali per la tua licenza nella pagina di supporto prima dell'acquisto.

Per distribuzioni in produzione e aziendali, il supporto fa parte dei criteri di selezione: un percorso di escalation definito, obiettivi di risposta documentati per livello di licenza e gestione prioritaria nei livelli superiori. Le librerie open source si affidano a forum della community e tracker dei problemi per la stessa classe di problemi.

Oltre alla copertura delle API, una libreria commerciale è anche un rapporto di manutenzione. Spire.XLS for Python è attivamente mantenuto, con rilasci regolari che aggiungono funzionalità e risolvono i problemi segnalati. Gli utenti con licenza ricevono aggiornamenti e supporto tecnico secondo i termini della loro licenza, e i livelli di supporto superiori offrono obiettivi di risposta più rapidi e gestione prioritaria.


Spire.XLS gratuito, di prova e commerciale

Spire.XLS è disponibile in tre forme con limiti diversi. Scegli in base a ciò che devi verificare.

Edizione Versione Limiti Ideale per
Free Spire.XLS 14.12.4 .xlsx illimitato; .xls limitato a 5 fogli × 200 righe; PDF limitato a 3 pagine; nessuna filigrana Verificare lettura/scrittura xlsx e piccoli report
Spire.XLS di prova 16.8.2 Foglio di avviso di valutazione e filigrana PDF; conversioni non di immagini limitate alle prime 10 pagine Valutare l'API e conversioni di 10 pagine o meno
Commerciale 16.8.2 Nessuno dei limiti sopra indicati (vedere il contratto di licenza) Produzione

Nei test delle versioni di prova e Free, la lettura e scrittura di xlsx non era limitata da righe o fogli. Secondo le note sui limiti del fornitore, l'esportazione di immagini non è interessata dal limite di 10 pagine. Un dettaglio pratico: dopo che l'edizione Free salva un file .xls, la cartella di lavoro in memoria viene troncata, quindi ricarica l'origine se devi salvare entrambi i formati.

Cosa offre una licenza commerciale?

Una licenza commerciale aggiunge un rapporto di aggiornamento e supporto oltre all'API. Include:

  • un anno di aggiornamenti gratuiti
  • un anno di supporto tecnico gratuito
  • tempi di risposta che dipendono dal tipo di licenza
  • risposta in 24 ore e supporto esperto nei livelli Gold e Platinum
  • consulenza tecnica pre-acquisto via email e sul forum

Quale libreria Excel per Python è adatta al tuo progetto?

Abbina la libreria al numero di compiti che la tua pipeline deve svolgere.

  1. Solo lettura di dati: usa pandas con calamine.
  2. Solo generazione di nuovi report: usa XlsxWriter.
  3. Solo modifica di modelli esistenti: usa openpyxl.
  4. Due o più esigenze avanzate (più formati, ricalcolo, conversione, crittografia, tabelle pivot): valuta Spire.XLS, che offre anche una cadenza di rilascio mantenuta e un canale di supporto del fornitore.

La regola che usiamo: conta i compiti, non le funzionalità. Un compito richiede uno strumento specializzato. Due compiti sono il punto in cui iniziare a considerare una libreria integrata, e tre o più in un'unica pipeline sono il caso in cui si ripaga chiaramente. Se sei al limite, prova i tuoi file reali con entrambi gli approcci. Ricorda che i risultati di fedeltà sono specifici per i file testati e gli oggetti complessi dovrebbero sempre essere verificati sulle tue cartelle di lavoro.

Pronto a provarlo sui tuoi file? Scarica Free Spire.XLS for Python o l'edizione di prova e leggi la documentazione di Spire.XLS for Python per vedere come il flusso di lavoro sopra si applica al tuo progetto.


Domande frequenti

Quale libreria Python può leggere e scrivere Excel senza Microsoft Office?

Tutte e quattro le librerie qui funzionano senza Office. pandas (tramite calamine o openpyxl) legge, XlsxWriter scrive, openpyxl legge e scrive .xlsx/.xlsm e Spire.XLS legge e scrive molti formati. Nel nostro test, Excel è stato usato solo per controllare i file di output.

pandas vs openpyxl: quale dovrei usare?

Usa pandas per caricare dati tabellari ai fini dell'analisi e openpyxl per modificare una cartella di lavoro mantenendone la struttura. pandas riscrive il file al salvataggio, quindi oggetti come grafici e tabelle pivot non vengono conservati. openpyxl li conserva negli scenari che abbiamo testato.

openpyxl può modificare una cartella di lavoro senza perdere grafici o tabelle pivot?

Nella nostra cartella di lavoro di test, sì: grafici, immagini, formattazione condizionale, convalida dati e parti di tabelle pivot sono stati conservati ed Excel ha aperto il file normalmente. Forme oltre le nostre fixture e VBA (che richiede keep_vba=True) non sono stati coperti, quindi testa i tuoi file.

Come posso convertire Excel in PDF in Python senza Excel installato?

Usa una libreria che esegua il rendering delle cartelle di lavoro autonomamente. Con Spire.XLS, imposta l'orientamento orizzontale e FitToPagesWide/FitToPagesTall, quindi salva con FileFormat.PDF. L'edizione di prova limita l'output PDF a 10 pagine e aggiunge una filigrana.

Queste librerie sono gratuite per uso commerciale?

pandas, openpyxl e XlsxWriter sono open source. Spire.XLS è un prodotto commerciale con un'edizione Free (xlsx senza restrizioni; .xls 5 fogli × 200 righe; PDF 3 pagine) e un'edizione di prova. Controlla ciascuna licenza per il tuo caso d'uso.

Quale libreria supporta .xls, .xlsb e .ods?

pandas con il motore calamine legge tutti e tre. openpyxl non li supporta e XlsxWriter scrive solo .xlsx. Spire.XLS legge e scrive xls, xlsb e ods, anche se dovresti testare il suo output xlsb e ods con i tuoi lettori downstream.


Come abbiamo testato

Abbiamo testato il 2 novembre 2026 con pandas 3.1.0, openpyxl 3.1.5, XlsxWriter 3.3.1 e Spire.XLS for Python 16.8.2 (di prova), più Free Spire.XLS 14.12.4 per i limiti delle edizioni. L'hardware era Windows x64 con 8 core logici e 7,8 GB di RAM. Il runtime era Python 3.12.13, con 3.14.6 usato per verificare la compatibilità.

Le fixture delle funzionalità erano una cartella di lavoro con tre fogli e 20 righe, formule, grafici, immagini, formattazione condizionale, convalida dati, celle unite, riquadri bloccati e filtri, più una fixture separata per le tabelle pivot. Il test delle prestazioni ha usato 50.000 righe × 6 colonne (1,18 MB), un'esecuzione di riscaldamento scartata, cinque esecuzioni misurate e la mediana, con ogni operazione in un processo separato. La scrittura in blocco di Spire è orientata alle colonne, quindi il suo benchmark ha usato sei chiamate InsertArray anziché un inserimento bidimensionale. Microsoft Excel 16.0 è stato usato solo per aprire i file generati e contare grafici e tabelle pivot.

Non coperti: VBA, slicer, Power Query, file da milioni di righe, concorrenza ed esecuzioni su Linux o macOS. Il benchmark è a macchina singola e carico di lavoro singolo, con un carico CPU in background del 12–22%. I dettagli su manutenzione e supporto provengono da pagine pubbliche ufficiali e registri PyPI, non dai nostri test.