Introducere

Lucrarea programată cu foi de calcul Excel este o cerință comună în procesul de prelucrare a datelor, raportare și fluxuri de lucru automatizate. Aspoză-celule-foss este o bibliotecă Python open-source care vă permite să creați, citiți și modificați .xlsx cărți de lucru fără dependență de Microsoft Excel sau alte suite office.

Eliberat în temeiul articolului Licență MIT, aspose-cells-foss oferă o suprafață API bogată care acoperă valorile celulelor, formulele, stilul, diagramele, tabelele. formele; imaginile; validarea datelor; comentariile; hiperlinkurile; filtrele automate și formatarea condițională. Biblioteca necesită Python 3.7 sau mai mare și se instalează cu un singur program de formare a fișei. pip Comandă.

Acest post merge prin capacitățile de gestionare a fișelor de calcul pe care aspose-cells-foss le aduce proiectelor dvs. Python, cu exemple de cod funcțional bazate pe API reală.


Ce înseamnă?

Valori și formule ale celulelor

În ceea ce priveşte Cell clasa suportă integeri, plutitoare, șiruri și formule. puteți seta o valoare direct prin intermediul put_value() sau atribui un șir de formule la formula Proprietatea. FormulaEvaluator clasa poate evalua formule programatic.

from aspose.cells_foss import Workbook, Cell

wb = Workbook()
ws = wb.worksheets[0]

# Set different value types
ws.cells["A1"] = Cell(42)
ws.cells["A2"] = Cell(3.14159)
ws.cells["A3"] = Cell("Revenue Report")

# Set a formula
ws.cells["A4"] = Cell(None, "=SUM(A1:A2)")

# Check the stored values
print(ws.cells["A1"].value)    # 42
print(ws.cells["A4"].formula)  # =SUM(A1:A2)

Stilul și formatarea

În ceea ce priveşte Style clasa oferă metode pentru umplere, margini, formate de număr și alinierea. Aplicați un stil la orice celulă cu Cell.apply_style().

from aspose.cells_foss import Workbook, Cell, Style

wb = Workbook()
ws = wb.worksheets[0]
ws.cells["A1"] = Cell("Total")
ws.cells["B1"] = Cell(25000)

style = Style()
style.set_fill_color("FFD9E1F2")
style.set_border("bottom", "thin", "FF000000", 1)
style.set_number_format("#,##0.00")
ws.cells["B1"].apply_style(style)

wb.save("styled_report.xlsx")

Graficele

În ceea ce priveşte ChartCollection ofertele de clasă dedicate add_line(), add_bar(), add_pie(), add_scatter(), și multe alte metode de a introduce grafice într-o foaie. Odată creat, configurați Chart titlul obiectului, legenda, datele de categorie și seria.

from aspose.cells_foss import Workbook

wb = Workbook()
ws = wb.worksheets[0]

# Populate data
months = ["Jan", "Feb", "Mar", "Apr"]
sales = [120, 150, 180, 200]
for i, (m, s) in enumerate(zip(months, sales), 2):
    ws.cells[f"A{i}"].value = m
    ws.cells[f"B{i}"].value = s
ws.cells["A1"].value = "Month"
ws.cells["B1"].value = "Sales"

# Create a line chart
chart = ws.charts.add_line(0, 4, 20, 12)
chart.title = "Monthly Sales"
chart.category_data = "A2:A5"
chart.n_series.add("B2:B5", category_data="A2:A5", name="Sales")
chart.show_legend = True

wb.save("sales_chart.xlsx")

Validarea datelor

În ceea ce priveşte DataValidation clasa vă permite să impuneți liste deschise, intervale de numere și regulile de validare personalizate pe intervalele de celule. Proprietățile includ: type, operator, formula1, formula2, alert_style, error_title, și error_message.

from aspose.cells_foss import Workbook

wb = Workbook()
ws = wb.worksheets[0]

# Add a dropdown validation
dv = ws.data_validations.add("B2:B100")
dv.type = 3       # List validation
dv.formula1 = '"Yes,No,Pending"'
dv.show_error_message = True
dv.error_title = "Invalid Entry"
dv.error_message = "Please select Yes, No, or Pending."

wb.save("validated.xlsx")

Filtre și tabele automate

Aplicați auto-filtrare cu AutoFilter clasa prin apelul set_range() Pentru datele structurate, sistemul de date este format din două pagini. TableCollection.add() metoda creează tabele ListObject cu stiluri și filtre automate.

from aspose.cells_foss import Workbook

wb = Workbook()
ws = wb.worksheets[0]

# Populate header + data
ws.cells["A1"].value = "Name"
ws.cells["B1"].value = "Score"
for i, (n, s) in enumerate([("Alice", 92), ("Bob", 78), ("Carol", 95)], 2):
    ws.cells[f"A{i}"].value = n
    ws.cells[f"B{i}"].value = s

# Apply an auto-filter
ws.auto_filter.set_range(0, 0, 3, 1)

# Or create a structured table
table = ws.tables.add(0, 0, 3, 1, True, "ScoreTable")

wb.save("filtered_data.xlsx")

Protecția cărților de lucru și a fișelor de muncă

Protejarea cărţilor de lucru cu: Workbook.protect() și fișe de lucru individuale cu: Worksheet.protect().API-ul de protecție susține permisiuni granulare, cum ar fi permiterea formatării sau inserării rândurilor în timp ce blochează ștergerile.

from aspose.cells_foss import Workbook

wb = Workbook()
ws = wb.worksheets[0]
ws.cells["A1"].value = "Protected content"

# Protect the worksheet with a password
ws.protect("secret123", format_cells=True, insert_rows=True,
           delete_columns=False, delete_rows=False)

# Protect the workbook structure
wb.protect("workbook_pass", lock_structure=True, lock_windows=False)
wb.save("protected.xlsx")

Început rapid

Instalați pachetul de pe PyPI:

pip install aspose-cells-foss>=26.3.1

Creați o carte de lucru, completați unele date și salvați-o:

from aspose.cells_foss import Workbook, Cell, Style

# Create a new workbook
wb = Workbook()
ws = wb.worksheets[0]
ws.name = "Quarterly Report"

# Add headers with styling
header_style = Style()
header_style.set_fill_color("FF4472C4")
for col, label in enumerate(["Region", "Q1", "Q2", "Q3", "Q4"], 1):
    cell_ref = f"{chr(64 + col)}1"
    ws.cells[cell_ref] = Cell(label)
    ws.cells[cell_ref].apply_style(header_style)

# Add data rows
data = [
    ("North", 12000, 15000, 13000, 16000),
    ("South", 9000, 11000, 10500, 12000),
    ("East", 14000, 13500, 15000, 17000),
]
for r, row in enumerate(data, 2):
    for c, val in enumerate(row, 1):
        ws.cells[f"{chr(64 + c)}{r}"].value = val

# Save as XLSX
wb.save("quarterly_report.xlsx")

# Also export to CSV
wb.save_as_csv("quarterly_report.csv")

Formatele suportate

FormatulExtindereCiteşte.Scrie .
XLSX.xlsxDa, sunt.Da, sunt.
CSV.csvDa, sunt.Da, sunt.
TSV.tsvNu, nu.Da, sunt.
JSON.jsonNu, nu.Da, sunt.
Marcare de reducere.mdNu, nu.Da, sunt.

În ceea ce priveşte SaveFormat enum definește aceste formate de ieșire: AUTO, XLSX, CSV, TSV, MARKDOWN, și JSON.- Biblioteca citeşte … .xlsx fișierele nativ și poate importa date CSV prin intermediul Workbook.load_csv().


Open Source & Licențiere

Aspoza- celulă- fos este eliberată sub tratamentul cu Licență MIT, care permite utilizarea nelimitată atât în proiecte comerciale, cât şi non-comerciale. GitHub.Biblioteca depinde de … pycryptodome (>= 3,15,0) și olefile (>= 0,46) pentru suportul criptării.


Cum să începem?

Explorați documentația completă și materialul de referință pentru a începe construirea cu aspose-cells-foss: