Jak převést Excel grafy a listy na PNG obrázky
Tento článek ukazuje, jak konvertovat grafy Excelu a pracovní desky na PNG obrazy pomocí aplikace Aspose.Cells LowCode ImageConverter v aplikacích .NET. ImageKonvertor poskytuje zjednodušený přístup k exportu vizuálních prvků programu Excel jako vysoce kvalitních obrazů, aniž by vyžadovaly rozsáhlé kódování nebo hluboké znalosti vnitřních struktur Excel.
Reálný světový problém
Zpráva návrháři a obchodní analytici často potřebují začlenit vizualizace založené na Excelu do prezentací, dokumentů a webových aplikací. ručně snímání obrazovky nebo pomocí složitých knihoven manipulace s obrázky vede k neslučitelné kvality, ztracené formátování a významného rozvoje.
Řešení přehled
Pomocí aplikace Aspose.Cells LowCode ImageConverter můžeme tuto výzvu efektivně řešit s minimálním kódem. Toto řešení je ideální pro návrháře zpráv a obchodní analytiky, kteří potřebují programově vytvářet vysoce kvalitní vizuální aktivy z dat Excelu při zachování formátování a vizuality.
Předpoklady
Před provedením řešení se ujistěte, že máte:
- Visual Studio 2019 nebo novější
- • .NET 6.0 nebo novější (kompatibilní s .Net Framework 4.6.2+)
- Aspose.Cells pro balíček .NET nainstalovaný prostřednictvím NuGet
- Základní znalosti C# programování
PM> Install-Package Aspose.Cells
krok za krokem implementace
Krok 1: Instalace a nastavení Aspose.Cells
Přidejte do vašeho projektu balíček Aspose.Cells a zahrněte potřebné názevové prostory:
using Aspose.Cells;
using Aspose.Cells.LowCode;
using Aspose.Cells.Rendering;
using System.IO;
Krok 2: Připravte své vstupní údaje
Identifikujte soubor Excel obsahující grafy nebo tabulky, které chcete převést na obrázky PNG. Ujistěte se, že soubory existují a jsou přístupné z vaší aplikace:
// Define the path to your Excel file
string excelFilePath = "reports/quarterly_sales.xlsx";
// Ensure the directory for output exists
Directory.CreateDirectory("result");
Krok 3: Nastavení možnosti ImageConverter
Nastavení možností pro proces ImageConverter podle vašich požadavků:
// Basic usage - convert the entire workbook
ImageConverter.Process(excelFilePath, "result/BasicOutput.png");
// Advanced configuration
LowCodeLoadOptions loadOptions = new LowCodeLoadOptions();
loadOptions.InputFile = excelFilePath;
LowCodeImageSaveOptions saveOptions = new LowCodeImageSaveOptions();
ImageOrPrintOptions imageOptions = new ImageOrPrintOptions();
imageOptions.ImageType = Aspose.Cells.Drawing.ImageType.Png;
imageOptions.Quality = 100; // Set the quality of the output image
imageOptions.OnePagePerSheet = true; // Each sheet on a separate image
saveOptions.ImageOptions = imageOptions;
Krok 4: Proveďte proces ImageConverter
Proveďte operaci ImageConverter s konfigurovanými možnostmi:
// Basic execution
ImageConverter.Process(loadOptions, saveOptions);
// Advanced execution with custom file naming
LowCodeSaveOptionsProviderOfPlaceHolders fileNameProvider = new LowCodeSaveOptionsProviderOfPlaceHolders(
"result/Chart${SheetIndexPrefix}${SheetIndex}_${SplitPartIndex}.png");
fileNameProvider.SheetIndexOffset = 1;
fileNameProvider.SheetIndexPrefix = "S";
fileNameProvider.SplitPartIndexOffset = 1;
ImageConverter.Process(loadOptions, saveOptions, fileNameProvider);
Krok 5: Sledujte výstup
Zpracujte a použijte generované PNG obrázky podle potřeby pro vaši aplikaci:
// Verify the output files exist
if (File.Exists("result/ChartS1_1.png"))
{
Console.WriteLine("Chart image successfully created!");
// Implement your logic to use the image files
// For example: Copy to a web server directory
// File.Copy("result/ChartS1_1.png", "wwwroot/images/chart1.png");
}
Krok 6: Řešení chyb
Přidejte správnou manipulaci s chybami, abyste zajistili robustní provoz:
try
{
// Configure load options
LowCodeLoadOptions loadOptions = new LowCodeLoadOptions();
loadOptions.InputFile = excelFilePath;
// Configure save options
LowCodeImageSaveOptions saveOptions = new LowCodeImageSaveOptions();
ImageOrPrintOptions imageOptions = new ImageOrPrintOptions();
imageOptions.ImageType = Aspose.Cells.Drawing.ImageType.Png;
saveOptions.ImageOptions = imageOptions;
// Execute conversion
ImageConverter.Process(loadOptions, saveOptions);
Console.WriteLine("Conversion completed successfully.");
}
catch (Exception ex)
{
// Error handling and logging
Console.WriteLine($"Error during conversion: {ex.Message}");
// Log the error to your logging system
// Consider implementing retry logic for transient issues
}
Krok 7: Optimalizace výkonu
Zvažte tyto techniky optimalizace pro výrobní prostředí:
- Použijte paměťové toky pro zpracování vysokého objemu, abyste se vyhnuli přehřátí souborů I/O
- Provádění paralelního zpracování pro více grafů nebo pracovních desek
- Přizpůsobte nastavení kvality obrazu pro odpovídající rovnováhu mezi kvalitou a velikostí souboru
// Using memory streams for programmatic use without file I/O
using (MemoryStream outputStream = new MemoryStream())
{
LowCodeLoadOptions loadOptions = new LowCodeLoadOptions();
loadOptions.InputFile = excelFilePath;
LowCodeImageSaveOptions saveOptions = new LowCodeImageSaveOptions();
ImageOrPrintOptions imageOptions = new ImageOrPrintOptions();
imageOptions.ImageType = Aspose.Cells.Drawing.ImageType.Png;
// For web use, might want lower quality/size
imageOptions.Quality = 85;
saveOptions.ImageOptions = imageOptions;
saveOptions.OutputStream = outputStream;
ImageConverter.Process(loadOptions, saveOptions);
// Use the stream directly (e.g., with web responses)
byte[] imageBytes = outputStream.ToArray();
// Example: save to file from memory stream
File.WriteAllBytes("result/OptimizedChart.png", imageBytes);
}
Krok 8: Kompletní příklad provádění
Zde je kompletní pracovní příklad, který ukazuje celý proces:
using System;
using System.IO;
using Aspose.Cells;
using Aspose.Cells.LowCode;
using Aspose.Cells.Rendering;
namespace ExcelChartToPngConverter
{
class Program
{
static void Main(string[] args)
{
try
{
// Set up directories
Directory.CreateDirectory("result");
// Define source Excel file
string excelFilePath = "quarterly_sales.xlsx";
Console.WriteLine("Starting Excel chart conversion...");
// Basic conversion - entire workbook
ImageConverter.Process(excelFilePath, "result/FullWorkbook.png");
// Advanced conversion with options
LowCodeLoadOptions loadOptions = new LowCodeLoadOptions();
loadOptions.InputFile = excelFilePath;
LowCodeImageSaveOptions saveOptions = new LowCodeImageSaveOptions();
ImageOrPrintOptions imageOptions = new ImageOrPrintOptions();
imageOptions.ImageType = Aspose.Cells.Drawing.ImageType.Png;
imageOptions.Quality = 100;
imageOptions.OnePagePerSheet = true;
saveOptions.ImageOptions = imageOptions;
// Custom file naming pattern for multi-sheet output
LowCodeSaveOptionsProviderOfPlaceHolders fileNameProvider =
new LowCodeSaveOptionsProviderOfPlaceHolders(
"result/Report${SheetIndexPrefix}${SheetIndex}_${SplitPartIndex}.png");
fileNameProvider.SheetIndexOffset = 1;
fileNameProvider.SheetIndexPrefix = "S";
fileNameProvider.SplitPartIndexOffset = 1;
// Execute conversion with custom naming
ImageConverter.Process(loadOptions, saveOptions, fileNameProvider);
// For specific sheet only conversion
saveOptions = new LowCodeImageSaveOptions();
imageOptions = new ImageOrPrintOptions();
imageOptions.ImageType = Aspose.Cells.Drawing.ImageType.Png;
imageOptions.PageIndex = 0; // First sheet only
saveOptions.ImageOptions = imageOptions;
saveOptions.OutputFile = "result/FirstSheetOnly.png";
ImageConverter.Process(loadOptions, saveOptions);
Console.WriteLine("Conversion completed successfully!");
Console.WriteLine("Output files located in 'result' directory.");
}
catch (Exception ex)
{
Console.WriteLine($"Error occurred: {ex.Message}");
Console.WriteLine(ex.StackTrace);
}
}
}
}
Použití případů a aplikací
Enterprise Reporting Systémy
Finanční analytici mohou automaticky generovat vizuální aktivy z Excelových zpráv pro začlenění do výkonných prezentací nebo tabulek. To eliminuje ruční snímky obrazovky a zajišťuje konzistentní, vysoce kvalitní vizualizace, které přesně reprezentují zdrojové údaje.
Pracovní toky integrace dat
Integrační pracovní toky mohou automaticky převést grafy založené na Excelu do obrazových formátů pro začlenění do zpráv PDF, webových portálů nebo e-mailových oznámení.
Automatizované zpracování dokumentů
Systémy pro generování dokumentů mohou programově extrahovat grafy a vizualizace z pracovních knih Excelu, aby vytvořily profesionální zprávy, které kombinují data, text i vizuální prvky.
Společné výzvy a řešení
Výzva 1: Udržování vysoké kvality obrazu
Rozhodnutí: Konfigurujte ImageOrPrintOptions s odpovídajícími nastavením kvality a rozlišovacími parametry, abyste zajistili optimální výkon. Pro prezentace a tiskové materiály použijte nastavení jakosti 90 nebo vyšší a uvažte o úpravách DPI na základě zamýšleného použití.
Výzva 2: Řešení velkých pracovních desek
Rozhodnutí: Použijte vlastnosti ImageOrPrintOptions.PageIndex a PageCount, abyste zpracovávali určité části velkých desek.Pro velmi velké desky, zvážíte používání nálepkových technik tím, že konfigurujete přizpůsobené nastavení stránek v souboru Excel.
Výzva č. 3: Nepřetržitý pohyb kolem prostředí
Rozhodnutí: Ujistěte se, že fonty používané v Excelovém souboru jsou k dispozici na serveru, nebo použijte nastavení výměny fontů v Aspose.Cells.
Úvahy o výkonu
- Použijte paměťové toky namísto souboru I/O při konverzi několika snímků v batchovém procesu
- Pro víceúčelové prostředí, zavedení vhodných blokovacích mechanismů při přístupu k sdíleným zdrojům
- Zvažte velikost a složitost listů při nastavení možností kvality – vyšší složenost vyžaduje více zdrojů zpracování
Nejlepší postupy
- Zavádění cachingových mechanismů pro často přístupné grafy, aby se zabránilo opakovaným konverzi
- Vytvořte systematickou pojmenovací konvenci pro výstupní soubory pro sledování zdroje každého obrazu
- Vložte metadata do katalogu výstupu obrazu, abyste mohli sledovat zpět do zdrojových souborů Excelu
- Validujte vstupní soubory Excel před zpracováním, abyste zajistili, že obsahují očekávané grafy a údaje
- Provádění logování pro sledování úspěšných konverzí a jakýchkoliv problémů, které vznikají během zpracování
Pokročilé scénáře
Pro složitější požadavky, zvážit tyto pokročilé implementace:
Scénář 1: Odstraňování pouze specifických grafů z pracovního listu
using Aspose.Cells;
using Aspose.Cells.Charts;
using Aspose.Cells.Drawing;
using System.IO;
// Load the workbook
Workbook workbook = new Workbook("reports/charts.xlsx");
// Get the first worksheet
Worksheet worksheet = workbook.Worksheets[0];
// Process each chart in the worksheet
for (int i = 0; i < worksheet.Charts.Count; i++)
{
Chart chart = worksheet.Charts[i];
// Save only specific charts based on title or other properties
if (chart.Title.Text.Contains("Revenue"))
{
// Create image for this specific chart
chart.ToImage("result/revenue_chart_" + i + ".png", new ImageOrPrintOptions
{
ImageType = ImageType.Png,
HorizontalResolution = 300,
VerticalResolution = 300
});
}
}
Scénář 2: Vytvoření Multi-Chart Dashboard Image
using Aspose.Cells;
using Aspose.Cells.Drawing;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
// Load the workbook containing charts
Workbook workbook = new Workbook("reports/dashboard_data.xlsx");
// Create a bitmap to serve as the dashboard canvas
using (Bitmap dashboardImage = new Bitmap(1200, 800))
{
using (Graphics g = Graphics.FromImage(dashboardImage))
{
// Set white background
g.Clear(Color.White);
// Draw title
using (Font titleFont = new Font("Arial", 18, FontStyle.Bold))
{
g.DrawString("Q2 2025 Performance Dashboard", titleFont,
Brushes.DarkBlue, new PointF(400, 30));
}
// Extract and place charts
int yPosition = 100;
for (int sheetIndex = 0; sheetIndex < 3; sheetIndex++)
{
// Get specific worksheet with chart
Worksheet sheet = workbook.Worksheets[sheetIndex];
if (sheet.Charts.Count > 0)
{
// Convert chart to image
MemoryStream chartStream = new MemoryStream();
sheet.Charts[0].ToImage(chartStream, new ImageOrPrintOptions
{
ImageType = ImageType.Png,
HorizontalResolution = 150,
VerticalResolution = 150
});
// Load chart image
using (Bitmap chartImage = new Bitmap(chartStream))
{
// Position chart on dashboard
g.DrawImage(chartImage, new Rectangle(50, yPosition, 500, 300));
yPosition += 320;
}
}
}
// Save the composite dashboard image
dashboardImage.Save("result/complete_dashboard.png", ImageFormat.Png);
}
}
závěr
Implementací aplikace Aspose.Cells LowCode ImageConverter můžete efektivně převést grafy a pracovní desky Excelu na kvalitní PNG obrázky a zjednodušit tvorbu vizuálních aktiv pro zpráv a prezentace. Tento přístup výrazně snižuje vývojový čas a manuální úsilí při zachování vizuální věrnosti a konzistence formátování.
Pro další informace a další příklady se podívejte na Aspose.Cells.LowCode API Reference .