Mengapa Membangun Bagan Secara Program?
Pipeline pelaporan otomatis sering membutuhkan grafik yang tertanam dalam buku kerja Excel, seperti ringkasan triwulan, dasbor hasil ML, atau metrik operasional. Melakukan ini tanpa Microsoft Excel berarti tidak ada biaya lisensi dan tidak adanya interaksi GUI.
Aspose.Cells FOSS for Python menyediakan API grafik Python yang bersih: satu metode per jenis bagan, string biasa untuk judul, dan konfigurasi seri berbasis argumen kata kunci. Seluruh API dibahas di bawah ini.
Instal (Membuat)
pip install aspose-cells-foss
Impor kelas yang Anda butuhkan:
from aspose.cells_foss import Workbook, Cell
Bagan dapat diakses melalui: ws.charts;Tidak diperlukan impor modul grafik terpisah.
API Grafik Sekilas
| Apa yang kau inginkan? | Bagaimana cara melakukannya? |
|---|---|
| Tambahkan tabel kolom | ws.charts.add_bar(top_row, left_col, bottom_row, right_col) |
| Tambahkan grafik garis | ws.charts.add_line(top_row, left_col, bottom_row, right_col) |
| Tambahkan grafik bar | ws.charts.add_bar(top_row, left_col, bottom_row, right_col) |
| Tambahkan grafik pai | ws.charts.add_pie(top_row, left_col, bottom_row, right_col) |
| Tetapkan judulnya | chart.title = "My Chart" (jaring biasa; tidak .title.text) |
| Tentukan kategori sumbu x | chart.category_data = "A2:A6" |
| Tambahkan seri yang diberi nama | chart.n_series.add("B2:B6", category_data="A2:A6", name="Revenue") |
| Legenda acara | chart.show_legend = True |
| Tentukan posisi legenda | chart.legend_position = "bottom" |
Semua indeks baris dan kolom adalah: nol-berbasis.- Aku tidak tahu. add_* metode mengembalikan nilai Chart objek langsung (bukan indeks).
Bagan: Langkah demi langkah
Mari kita membuat grafik kolom yang menunjukkan pendapatan dan pengeluaran triwulan.
Langkah 1: Buat buku kerja dan tulis data
from aspose.cells_foss import Workbook, Cell
wb = Workbook()
ws = wb.worksheets[0]
ws.name = "Q1-Q4 Report"
##Headers
ws.cells["A1"].value = "Quarter"
ws.cells["B1"].value = "Revenue"
ws.cells["C1"].value = "Expenses"
##Data
quarters = ["Q1", "Q2", "Q3", "Q4"]
revenue = [50000, 62000, 71000, 89000]
expenses = [32000, 38000, 41000, 47000]
for i, (q, r, e) in enumerate(zip(quarters, revenue, expenses), start=2):
ws.cells[f"A{i}"].value = q
ws.cells[f"B{i}"].value = r
ws.cells[f"C{i}"].value = e
Langkah 2: Tambahkan bagan
Tempatkan grafik di bawah data (baris 7 dan seterusnya, mencakup kolom 0-8):
chart = ws.charts.add_bar(6, 0, 22, 8)
Langkah 3: Konfigurasi judul dan legenda
chart.title = "Quarterly Revenue vs Expenses"
chart.show_legend = True
chart.legend_position = "bottom"
Langkah 4: Tambahkan seri data
Setiap seri membutuhkan rentang nilai, rentan kategori, dan nama:
chart.category_data = "A2:A5"
chart.n_series.add("B2:B5", category_data="A2:A5", name="Revenue")
chart.n_series.add("C2:C5", category_data="A2:A5", name="Expenses")
Langkah 5: Simpan
wb.save("quarterly_report.xlsx")
print("Chart saved to quarterly_report.xlsx")
Contoh lengkap dalam satu blok:
from aspose.cells_foss import Workbook, Cell
wb = Workbook()
ws = wb.worksheets[0]
ws.name = "Q1-Q4 Report"
##Data
ws.cells["A1"].value = "Quarter"
ws.cells["B1"].value = "Revenue"
ws.cells["C1"].value = "Expenses"
data = [("Q1", 50000, 32000), ("Q2", 62000, 38000),
("Q3", 71000, 41000), ("Q4", 89000, 47000)]
for i, (q, r, e) in enumerate(data, start=2):
ws.cells[f"A{i}"].value = q
ws.cells[f"B{i}"].value = r
ws.cells[f"C{i}"].value = e
chart = ws.charts.add_bar(6, 0, 22, 8)
chart.title = "Quarterly Revenue vs Expenses"
chart.category_data = "A2:A5"
chart.n_series.add("B2:B5", category_data="A2:A5", name="Revenue")
chart.n_series.add("C2:C5", category_data="A2:A5", name="Expenses")
chart.show_legend = True
chart.legend_position = "bottom"
wb.save("quarterly_report.xlsx")
Bagan garis: Tren bulanan
Pola yang sama bekerja untuk add_line():
from aspose.cells_foss import Workbook, Cell
wb = Workbook()
ws = wb.worksheets[0]
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
actuals = [42000, 47500, 53000, 49000, 61000, 68000]
targets = [45000, 45000, 50000, 55000, 60000, 65000]
ws.cells["A1"].value = "Month"
ws.cells["B1"].value = "Actual"
ws.cells["C1"].value = "Target"
for i, (m, a, t) in enumerate(zip(months, actuals, targets), start=2):
ws.cells[f"A{i}"].value = m
ws.cells[f"B{i}"].value = a
ws.cells[f"C{i}"].value = t
chart = ws.charts.add_line(8, 0, 24, 8)
chart.title = "Monthly Revenue: Actual vs Target"
chart.category_data = "A2:A7"
chart.n_series.add("B2:B7", category_data="A2:A7", name="Actual")
chart.n_series.add("C2:C7", category_data="A2:A7", name="Target")
chart.show_legend = True
chart.legend_position = "right"
wb.save("monthly_trend.xlsx")
Bagan: Bagian Pasar
from aspose.cells_foss import Workbook, Cell
wb = Workbook()
ws = wb.worksheets[0]
segments = ["Product A", "Product B", "Product C", "Product D"]
shares = [40, 25, 20, 15]
ws.cells["A1"].value = "Segment"
ws.cells["B1"].value = "Share %"
for i, (s, v) in enumerate(zip(segments, shares), start=2):
ws.cells[f"A{i}"].value = s
ws.cells[f"B{i}"].value = v
chart = ws.charts.add_pie(6, 0, 20, 7)
chart.title = "Market Share by Product"
chart.category_data = "A2:A5"
chart.n_series.add("B2:B5", category_data="A2:A5", name="Share")
chart.show_legend = True
chart.legend_position = "right"
wb.save("market_share.xlsx")
Kesalahan Umum yang Harus Dihindari
| Salah. | Benar. |
|---|---|
ws.charts.add(ChartType.COLUMN, 5, 0, 15, 5) | ws.charts.add_bar(5, 0, 15, 5) |
chart.title.text = "Revenue" | chart.title = "Revenue" |
chart.n_series.add("B2:B5", True) (posisional) | chart.n_series.add("B2:B5", category_data="A2:A5", name="Revenue") |
from aspose.cells.charts import ChartType | Tidak diperlukan; gunakan ws.charts.add_bar() langsung |
chart.n_series.category_data = "A2:A5" | chart.category_data = "A2:A5" (tingkat grafik) |
Sumber daya
- Aspose.Cells FOSS for Python: Installation
- Panduan Pengembang: Bekerja dengan Grafik
- Referensi API: ChartCollection, Graph, NSeries
- Basis Pengetahuan: Cara Membuat Grafik dalam Python
- Tinjauan Produk: Ringkasan fitur dan kemampuan
- Blog: Memperkenalkan Aspose.Cells FOSS: Tinjauan Perpustakaan dan awal yang cepat
- Repository GitHub