Aspose.Cells for Python via .NET ile Mini Grafikleri Görüntüye ve HTML'e Dönüştürme

Introduction

Mini grafikler, eğilimleri doğrudan çalışma sayfasının içinde görselleştirmenin kompakt bir yoludur. Excel kullanıcıları onları yerinde görürken, birçok gerçek dünya senaryosunda mini grafiğin hücreden çıkması gerekir; örneğin farklı bir hücreye statik resim olarak gömülmesi, otomatik bir e-postaya eklenmesi veya web’de yayınlanan bir HTML raporunun parçası olarak işlenmesi gibi. Aspose.Cells bu iki işlemi de destekler. sparkline.to_image yöntemi tek bir mini grafiği bir akışa işler ve elde edilen baytlar cell.embedded_image özelliğine atanabilir, böylece resim çalışma kitabının tek bir hücresinde saklanır. Ayrıca HtmlSaveOptions, tüm çalışma kitabını — mini grafikler dahil — kendi kendine yeten bir HTML dosyasına dönüştürmenize olanak tanır. Bu makale her iki iş akışını da uçtan uca ele alır.

Workflow 1 — Render Sparklines to Images and Embed Them into Cells

Bu iş akışında, kaynak değerlerin küçük bir aralığını içeren bir çalışma sayfası oluşturacak, o aralığa üç farklı mini grafik grubu (Çizgi, Sütun ve Yığılmış/Kazanç-Kayıp) ekleyecek, her grubu PNG olarak işleyecek ve bu PNG baytlarını bitişik hücrelere gömülmüş görüntüler olarak yazacaksınız. Son sonuç, hem canlı mini grafikleri hem de işlenmiş resim karşılıklarını içeren tek bir .xlsx dosyasıdır.

Step-by-Step Instructions

  1. Bir çalışma dizini tanımlayın ve diskte var olduğundan emin olun.
  2. Yeni bir Workbook oluşturun ve ilk Worksheet‘e bir referans edinin.
  3. A1 ile E1 arasındaki hücreleri beş örnek sayısal değerle doldurun (örneğin, günlük satışlar veya sıcaklık ölçümleri).
  4. worksheet.sparkline_groups.add(...) çağırarak çalışma sayfasına üç SparklineGroup nesnesi ekleyin:
    • Veri aralığı A1:E1 olan, F1 hücresine sabitlenmiş bir SparklineType.LINE grubu.
    • Veri aralığı A1:E1 olan, G1 hücresine sabitlenmiş bir SparklineType.COLUMN grubu.
    • Veri aralığı A1:E1 olan, H1 hücresine sabitlenmiş bir SparklineType.STACKED (kazanç/kayıp) grubu.
  5. Bir ImageOrPrintOptions örneği oluşturun ve image_type özelliğini ImageType.PNG olarak ayarlayın, böylece her mini grafik şeffaf bir PNG olarak işlenir.
  6. Çalışma kitabını output_with_sparklines.xlsx olarak kaydedin.
import aspose.cells as ac
# Create a new workbook and access the first worksheet
workbook = ac.Workbook()
worksheet = workbook.worksheets[0]
# Populate sample data in cells A1:E1
worksheet.cells["A1"].put_value(5)
worksheet.cells["B1"].put_value(-3)
worksheet.cells["C1"].put_value(8)
worksheet.cells["D1"].put_value(-2)
worksheet.cells["E1"].put_value(6)
# Add a Line sparkline group anchored at F1 (column 5, row 0)
line_area = ac.CellArea()
line_area.start_column = 5
line_area.end_column = 5
line_area.start_row = 0
line_area.end_row = 0
line_idx = worksheet.sparkline_groups.add(ac.SparklineType.LINE, "A1:E1", False, line_area)
# Add a Column sparkline group anchored at G1 (column 6, row 0)
column_area = ac.CellArea()
column_area.start_column = 6
column_area.end_column = 6
column_area.start_row = 0
column_area.end_row = 0
column_idx = worksheet.sparkline_groups.add(ac.SparklineType.COLUMN, "A1:E1", False, column_area)
# Add a Win/Loss (Stacked) sparkline group anchored at H1 (column 7, row 0)
stacked_area = ac.CellArea()
stacked_area.start_column = 7
stacked_area.end_column = 7
stacked_area.start_row = 0
stacked_area.end_row = 0
stacked_idx = worksheet.sparkline_groups.add(ac.SparklineType.STACKED, "A1:E1", False, stacked_area)
# Configure image options for PNG output
image_options = ac.ImageOrPrintOptions()
image_options.image_type = ac.ImageType.PNG
# Convert the Line sparkline to image and embed it in cell F2
line_sp = worksheet.sparkline_groups[line_idx].sparklines[0]
ms = ac.MemoryStream()
line_sp.to_image(ms, image_options)
worksheet.cells["F2"].embedded_image = ms.to_array()
# Convert the Column sparkline to image and embed it in cell G2
column_sp = worksheet.sparkline_groups[column_idx].sparklines[0]
ms = ac.MemoryStream()
column_sp.to_image(ms, image_options)
worksheet.cells["G2"].embedded_image = ms.to_array()
# Convert the Win/Loss sparkline to image and embed it in cell H2
stacked_sp = worksheet.sparkline_groups[stacked_idx].sparklines[0]
ms = ac.MemoryStream()
stacked_sp.to_image(ms, image_options)
worksheet.cells["H2"].embedded_image = ms.to_array()
# Save the workbook to disk
workbook.save("output_with_sparklines.xlsx")

Yukarıdaki kod, her bir mini grafiğin görsel gösteriminin iki biçimde çoğaltıldığı bir çalışma kitabı üretir: 1. satıra sabitlenmiş canlı, yerel mini grafik ve 2. satırdaki bitişik bir hücreye doğrudan gömülmüş statik bir PNG resmi. Resimler dosyanın kendisinde bulunduğundan, çalışma kitabı e-postayla gönderilebilen veya gömülmüş görüntü referansları bozulmadan arşivlenebilen tek bir kendi kendine yeten yapı olarak kalır. Her mini grafik grubunu PNG olarak işleyin, BytesIO akışını bir bytes nesnesine dönüştürün ve baytları hedef hücrenin embedded_image özelliğine atayın — atama işlemi, resmi hücrenin saklanan içeriğinin bir parçası haline getiren şeydir.