Pengantar

Bekerja dengan spreadsheet Excel secara programatis adalah persyaratan umum dalam pemrosesan data, pelaporan, dan alur kerja otomatisasi. Asposis-sel-fos adalah perpustakaan Python open-source yang memungkinkan Anda membuat, membaca dan memodifikasi .xlsx buku kerja tanpa ketergantungan pada Microsoft Excel atau suite kantor lainnya.

Diperbarui di bawah Lisensi MIT, aspose-cells-foss menyediakan permukaan API yang kaya mencakup nilai sel, rumus, styling, grafik, tabel, bentuk, gambar, validasi data, komentar, hyperlink, otomatis filter dan format bersyarat. Perpustakaan membutuhkan Python 3.7 atau lebih tinggi dan menginstal dengan satu aplikasi. pip perintah.

Posting ini berjalan melalui kemampuan manajemen spreadsheet yang dibawa aspose-cells-foss ke proyek Python Anda, dengan contoh kode kerja berdasarkan API aktual.


Apa yang Termasuk?

Nilai dan Rumus Sel

Pengelolaan Cell class mendukung bilangan bulat, float, string dan rumus. Anda dapat mengatur nilai langsung melalui put_value() atau menetapkan string rumus ke formula properti. FormulaEvaluator kelas dapat mengevaluasi rumus secara program.

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)

Penataan Gaya dan Format

Pengelolaan Style class menyediakan metode untuk mengisi, batas, format angka, dan penyelarasan. Terapkan gaya ke sel manapun dengan 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")

Bagan-bagan

Pengelolaan ChartCollection kelas menawarkan khusus add_line(), add_bar(), add_pie(), add_scatter(), dan banyak metode lain untuk memasukkan grafik ke dalam lembar kerja. Setelah dibuat, konfigurasi Chart judul objek, legenda, data kategori dan seri.

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")

Validasi data

Pengelolaan DataValidation class memungkinkan Anda memaksakan daftar dropdown, rentang nomor, dan aturan validasi kustom pada rentan sel. Properti termasuk type, operator, formula1, formula2, alert_style, error_title, dan 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")

Filter dan Tabel Otomatis

Menerapkan otomatis penyaringan dengan AutoFilter kelas dengan menelepon set_range() dan kemudian menyaring kolom individu. Untuk data terstruktur, TableCollection.add() metode membuat tabel ListObject dengan gaya dan filter otomatis.

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")

Perlindungan buku kerja dan lembar kerja

Melindungi buku kerja dengan Workbook.protect() dan lembar kerja individu dengan Worksheet.protect().API perlindungan mendukung izin granular seperti memungkinkan pemformatan atau memasukkan baris sambil memblokir penghapusan.

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")

Memulai dengan cepat

Instal paket dari PyPI:

pip install aspose-cells-foss>=26.3.1

Buat buku kerja, isi beberapa data, dan simpan:

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")

Format yang Didhukung

Format (Inggris)PerpanjanganBacalah.Menulis
XLSX.xlsxYa, aku tahu.Ya, aku tahu.
CSV.csvYa, aku tahu.Ya, aku tahu.
TSV.tsvTidak ada.Ya, aku tahu.
JSON.jsonTidak ada.Ya, aku tahu.
Markingdown (pengurangan).mdTidak ada.Ya, aku tahu.

Pengelolaan SaveFormat enum mendefinisikan format output ini: AUTO, XLSX, CSV, TSV, MARKDOWN, dan JSON.Perpustakaan membaca … .xlsx file secara native dan dapat mengimpor data CSV melalui Workbook.load_csv().


Open Source & Lisensi

Asposis-cell-foss dilepaskan di bawah Lisensi MIT, yang memungkinkan penggunaan tanpa batasan dalam proyek komersial dan non-komersial. Kode sumber tersedia di WEB GitHub.Perpustakaan bergantung pada pycryptodome (>= 3,15,0) dan olefile (>= 0,46) untuk dukungan enkripsi.


Memulai

Pelajari dokumentasi lengkap dan bahan referensi untuk memulai membangun dengan aspose-cells-foss: