Come Scrivere File XLSX con Python | Spire.XLS

2025-06-30 05:49:23 zaki zou

La scrittura efficiente di file Excel è essenziale nei flussi di lavoro basati su Python per l'analisi dei dati, il reporting e l'automazione. Tra le molte librerie disponibili, Spire.XLS for Python si distingue come una soluzione potente e indipendente da Excel che supporta funzionalità complesse come grafici, formule, formattazione condizionale, crittografia e gestione di grandi set di dati.

Questa guida mostrerà come scrivere file XLSX con Python utilizzando Spire.XLS for Python, coprendo i dettagli dalla scrittura di base alla formattazione avanzata, il tutto utilizzando una libreria Excel affidabile e pronta per l'uso aziendale.

Scrivere file XLSX con codice Python

Come scrivere file XLSX con Spire.XLS for Python

Perché usare Spire.XLS for Python?

Spire.XLS for Python è una libreria ricca di funzionalità che consente agli sviluppatori di leggere, scrivere e manipolare file Excel senza bisogno di Microsoft Office. È costruita per garantire prestazioni e flessibilità, rendendola ideale per attività di automazione e reporting su larga scala.

Vantaggi principali:

  • API All-in-One: Lettura/scrittura di .xls e .xlsx, formattazione di celle, inserimento di formule, conversione di file e altro ancora.
  • Supporto multipiattaforma: Disponibile per .NET, Java, Python e compatibile con ambienti basati su cloud.
  • Funzionalità avanzate di Excel: Supporta grafici, tabelle pivot, formattazione condizionale e protezione.
  • Documentazione e supporto affidabili: Riferimenti API estesi, tutorial, forum per sviluppatori e team di supporto.
  • Edizione gratuita disponibile: Ideale per l'elaborazione leggera di file Excel senza costi di licenza.

Installazione di Spire.XLS for Python

È possibile installare la versione completa o la versione gratuita di Spire.XLS a seconda delle proprie esigenze.

Versione completa:

pip install spire.xls

Versione gratuita (per file più piccoli e casi d'uso di base):

pip install spire.xls.free

Passaggi di base per la scrittura di file XLSX

Per scrivere su file Excel utilizzando Python, segui questi passaggi fondamentali:

  • Crea una nuova cartella di lavoro Excel tramite il costruttore Workbook().
  • Carica un file XLSX esistente (opzionale) con il metodo Workbook.LoadFromFile().
  • Aggiungi o ottieni un foglio di lavoro utilizzando il metodo Workbook.Worksheets.Add() o il metodo get_Item().
  • Accedi alle celle tramite il metodo Worksheet.Range.get_Item().
  • Scrivi i dati utilizzando le proprietà della classe CellRange, come Value, Text, NumberValue, ecc.
  • Salva la cartella di lavoro utilizzando il metodo Workbook.SaveToFile().

Esempio di codice per la scrittura di base di un file XLSX

  • Python
from spire.xls import Workbook, ExcelVersion

# Crea un oggetto Workbook
workbook = Workbook()

# Ottieni il primo foglio di lavoro predefinito
sheet = workbook.Worksheets.get_Item(0)

# Scrivi una stringa nella cella B2
sheet.Range.get_Item(2, 2).Text = "Ciao mondo!"

# Salva la cartella di lavoro
workbook.SaveToFile("output/BasicWorkbook.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Il file XLSX di output:

Scrivere un semplice file XLSX con Python

Scrivere diversi tipi di dati in file XLSX utilizzando Python

Spire.XLS offre una serie di proprietà nella classe CellRange che supportano la scrittura di vari tipi di dati direttamente nelle celle di Excel, come stringhe, valori di data e ora, valori booleani e valori numerici. Ciò rende facile per gli sviluppatori scrivere valori tipizzati direttamente nelle celle di un file XLSX.

Tipi di dati supportati e loro proprietà

Proprietà Tipo di valore Funzione
NumberValue float Imposta un valore numerico
Text str Imposta testo semplice
DateTimeValue datetime Imposta una data e un'ora
BooleanValue bool Imposta un valore booleano
Formula str Inserisce una formula
HtmlString str Inserisce testo formattato in HTML
Value str Imposta un valore generico

Esempio di codice – Scrittura di vari tipi di dati

  • Python
from spire.xls import Workbook, ExcelVersion, DateTime, HorizontalAlignType, Stream, ImageFormatType

# Crea un oggetto Workbook
workbook = Workbook()

# Ottieni il primo foglio di lavoro predefinito
sheet = workbook.Worksheets.get_Item(0)

# Scrivi testo nella cella B1
sheet.Range.get_Item(1, 2).Text = "Testo semplice"
# Scrivi un numero nella cella B2
sheet.Range.get_Item(2, 2).NumberValue = 123456
sheet.Range.get_Item(2, 2).NumberFormat = "#,##0.00"
# Scrivi una data nella cella B3
sheet.Range.get_Item(3, 2).DateTimeValue = DateTime.get_UtcNow()
# Scrivi un valore booleano nella cella B4
sheet.Range.get_Item(4, 2).BooleanValue = True
# Scrivi una formula nella cella B5
sheet.Range.get_Item(5, 2).Formula = "B2/2"
# Scrivi una stringa HTML nella cella B6
sheet.Range.get_Item(6, 2).HtmlString = "<p><span style='color: blue; font-size: 18px;'>Carattere blu dimensione 18 pixel</span></p>"
# Scrivi un valore normale nella cella B7
sheet.Range.get_Item(7, 2).Value = "Valore normale"
# Inserisci un'immagine nella cella B8
with open("Logo.png", "rb") as f:
    imageBytes = f.read()
stream = Stream(imageBytes)
sheet.Pictures.Add(8, 2, stream, ImageFormatType.Png)

# Imposta la formattazione di base
sheet.Range.get_Item(1, 2, 8, 2).HorizontalAlignment = HorizontalAlignType.Left
sheet.AutoFitColumn(2)
for i in range(sheet.Range.Columns.Count):
    for j in range(sheet.Range.Rows.Count):
        sheet.Range.get_Item(j + 1, i + 1).HorizontalAlignment = HorizontalAlignType.Left

# Salva la cartella di lavoro in un file XLSX
workbook.SaveToFile("output/WriteDataExcelCell.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Il file XLSX di output:

Scrivere diversi tipi di dati in un file XLSX con codice Python

Applicare formattazione e stili alle celle di Excel con Python

La formattazione gioca un ruolo chiave nel rendere i report di Excel chiari e professionali. Con Spire.XLS for Python, è possibile personalizzare l'aspetto delle celle utilizzando caratteri, colori, allineamento, formati numerici e stili predefiniti. Questi strumenti aiutano a migliorare la leggibilità e a presentare i dati in modo raffinato e coerente, ideale per il reporting e l'automazione.

L'esempio di codice seguente mostra come formattare i fogli di lavoro utilizzando Python.

Formattare le celle con carattere, colore, bordo e allineamento

  • Python
from spire.xls import Workbook, Color, LineStyleType, BordersLineType, HorizontalAlignType

# Crea un oggetto Workbook
workbook = Workbook()

# Carica il file XLSX
workbook.LoadFromFile("Sample.xlsx")

# Ottieni il primo foglio di lavoro
sheet = workbook.Worksheets.get_Item(0)

# Imposta gli stili del carattere
# Riga di intestazione
sheet.Rows.get_Item(0).Style.Font.FontName = "Times New Roman"
sheet.Rows.get_Item(0).Style.Font.Size = 14
sheet.Rows.get_Item(0).Style.Font.IsBold = True
# Righe di dati
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).Style.Font.FontName = "Arial"
    sheet.Rows.get_Item(i).Style.Font.Size = 12

# Imposta i colori delle celle
# Riga di intestazione
sheet.Rows.get_Item(0).Style.Color = Color.FromRgb(200, 245, 230)
# Righe di dati
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).Style.Color = Color.FromRgb(240, 255, 250)

# Imposta gli stili dei bordi
# Riga di intestazione
sheet.Rows.get_Item(0).Style.Borders.get_Item(BordersLineType.EdgeBottom).LineStyle = LineStyleType.Thick
sheet.Rows.get_Item(0).Style.Borders.get_Item(BordersLineType.EdgeBottom).Color = Color.get_White()
# Righe di dati
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).BorderInside(LineStyleType.Thin, Color.get_Black())

# Imposta l'allineamento
# Riga di intestazione
sheet.Rows.get_Item(0).Style.HorizontalAlignment = HorizontalAlignType.Center
# Righe di dati
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).Style.HorizontalAlignment = HorizontalAlignType.Left

# Adatta automaticamente la larghezza della colonna
for i in range(sheet.Columns.Count):
    sheet.AutoFitColumn(i + 1)

# Salva il file Excel
workbook.SaveToFile("output/FormatXLSXFile.xlsx")
workbook.Dispose()

Il file XLSX di output:

Formattare le celle nei file XLSX con codice Python

Impostare i formati numerici per le celle

  • Python
from spire.xls import Workbook, ExcelVersion

# Crea un'istanza di Workbook
workbook = Workbook()

# Ottieni il primo foglio di lavoro
sheet = workbook.Worksheets.get_Item(0)

# Formatta una cella come numero
sheet.Range.get_Item(1, 2).NumberValue = 1234567890
sheet.Range.get_Item(1, 2).NumberFormat = "[Red]#,##0;[Green]#,##0"

# Formatta una cella come data
sheet.Range.get_Item(2, 2).NumberValue = 45562
sheet.Range.get_Item(2, 2).NumberFormat = "yyyy-mm-dd"

# Formatta una cella come ora
sheet.Range.get_Item(3, 2).NumberValue = 45562
sheet.Range.get_Item(3, 2).NumberFormat = "hh:mm:ss"

# Formatta una cella come valuta
sheet.Range.get_Item(4, 2).NumberValue = 1234567890
sheet.Range.get_Item(4, 2).NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"

# Formatta una cella come percentuale
sheet.Range.get_Item(5, 2).NumberValue = 0.1234567890
sheet.Range.get_Item(5, 2).NumberFormat = "0.00%"

# Formatta una cella come frazione
sheet.Range.get_Item(6, 2).NumberValue = 0.1234567890
sheet.Range.get_Item(6, 2).NumberFormat = "0.00_ ?"

# Formatta una cella come numero scientifico
sheet.Range.get_Item(7, 2).NumberValue = 1234567890
sheet.Range.get_Item(7, 2).NumberFormat = "0.00E+00"

# Adatta automaticamente la larghezza della colonna
for i in range(sheet.Columns.Count):
    sheet.AutoFitColumn(i + 1)

# Salva il file Excel
workbook.SaveToFile("output/SetNumberFormat.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Il file XLSX di output:

Impostare i formati numerici per le celle nei file XLSX con Python

Applicare stili predefiniti alle celle

  • Python
from spire.xls import Workbook, BuiltInStyles

# Crea un'istanza di Workbook
workbook = Workbook()

# Carica il file Excel
workbook.LoadFromFile("Sample.xlsx")

# Ottieni il primo foglio di lavoro
sheet = workbook.Worksheets.get_Item(0)

# Applica lo stile di intestazione predefinito alla prima riga
sheet.Rows.get_Item(0).BuiltInStyle = BuiltInStyles.Heading2

# Applica lo stile a piè di pagina predefinito alle righe di dati
for i in range(1, sheet.Rows.Count):
    sheet.Rows.get_Item(i).BuiltInStyle = BuiltInStyles.Accent2_20

# Adatta automaticamente la larghezza della colonna
for i in range(sheet.Columns.Count):
    sheet.AutoFitColumn(i + 1)

# Salva il file Excel
workbook.SaveToFile("output/ApplyBuiltInStyle.xlsx")
workbook.Dispose()

Il file XLSX di output:

Applicare stili predefiniti ai file XLSX con Python

Conclusione

In questa guida, abbiamo esplorato come scrivere file XLSX con Python utilizzando Spire.XLS, dalla scrittura di base alla formattazione. Che si tratti di generare report, automatizzare esportazioni o creare applicazioni basate sui dati, Spire.XLS for Python offre una soluzione affidabile ed efficiente per la generazione di file Excel.

Ottieni una licenza gratuita

Puoi richiedere una licenza di prova gratuita di 30 giorni per la versione completa di Spire.XLS for Python. Ciò ti consente di esplorare tutte le funzionalità avanzate senza limitazioni durante il periodo di prova.

Vedi anche