Kā konvertēt Excel grafikas un lapas uz PNG attēliem
Šajā rakstā ir parādīts, kā pārvērst Excel grafiku un darba lapu PNG attēliem, izmantojot Aspose.Cells LowCode ImageConverter .NET lietojumprogrammās.ImageConverters nodrošina vienkāršu pieeju, lai eksportētu Excel vizuālos elementus kā augstas kvalitātes attēlus, neprasa plašu kodēšanu vai dziļas zināšanas par Excel iekšējām struktūrām.
Reālā pasaules problēma
Ziņojumu dizaineri un biznesa analītiķi bieži vien ir nepieciešams, lai iekļautu Excel balstītas vizualizācijas prezentācijās, dokumentos un tīmekļa lietojumprogrammās. Manuāli ņemot ekrāna attēlus vai izmantojot sarežģītus attēla manipulācijas bibliotēkas rezultātā nesaskaņas kvalitāti, zaudēto formātu un nozīmīgu attīstību.
Risinājumu pārskats
Izmantojot Aspose.Cells LowCode ImageConverter, mēs varam efektīvi risināt šo izaicinājumu ar minimālo kodu.Šis risinājums ir ideāls ziņojumu dizaineriem un biznesa analītiķiem, kuriem ir nepieciešams programmatiski ģenerēt augstas kvalitātes vizuālos aktīvus no Excel datiem, vienlaikus saglabājot formatēšanu un vizuālo lojalitāti.
Prerequisites
Pirms risinājuma ieviešanas pārliecinieties, ka jums ir:
- Visual Studio 2019 vai vēlāk
- .NET 6.0 vai jaunāks (kompatibilitāte ar .Net Framework 4.6.2+)
- Aspose.Cells par .NET paketi, kas instalēta caur NuGet
- C# programmēšanas pamata izpratne
PM> Install-Package Aspose.Cells
Step-by-step īstenošana
1. solis: Uzstādīt un konfigurēt Aspose.Cells
Pievienojiet Aspose.Cells paketi savam projektam un iekļauj nepieciešamos nosaukuma telpas:
using Aspose.Cells;
using Aspose.Cells.LowCode;
using Aspose.Cells.Rendering;
using System.IO;
2. solis: sagatavojiet ieejas datus
Identificējiet Excel failu, kas satur grafikus vai darba lapas, kuras vēlaties konvertēt uz PNG attēliem.
// Define the path to your Excel file
string excelFilePath = "reports/quarterly_sales.xlsx";
// Ensure the directory for output exists
Directory.CreateDirectory("result");
3. solis: Iestatīt ImageConverter opcijas
Iestatīt ImageConverter procesa iespējas atbilstoši jūsu prasībām:
// 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;
4. solis: Izveidojiet ImageConverter procesu
Izveidojiet ImageConverter darbību ar konfigurētajām opcijām:
// 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);
5. solis: pārvaldīt rezultātus
Pārstrādājiet un izmantojiet ģenerētos PNG attēlus, kā nepieciešams jūsu pieteikumam:
// 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");
}
6. solis: kļūdu risināšana
Pievienojiet pareizo kļūdu apstrādi, lai nodrošinātu stabilu darbību:
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
}
7. solis: optimizēt rezultātus
Apsveriet šādas optimizācijas metodes ražošanas vidē:
- Izmantojiet atmiņas plūsmas augsta apjoma apstrādei, lai izvairītos no I/O failu pārklājuma
- Paralēli apstrāde vairāku grafiku vai darba lapu īstenošanai
- Iestatīt attēla kvalitātes iestatījumus, lai nodrošinātu atbilstošu līdzsvaru starp kvalitāti un failu izmēru
// 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);
}
8. solis: Pilnīgs īstenošanas piemērs
Šeit ir pilns darba piemērs, kas pierāda visu procesu:
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);
}
}
}
}
Izmantojiet gadījumus un pieteikumus
Uzņēmuma ziņošanas sistēmas
Finanšu analītiķi var automātiski radīt vizuālos aktīvus no Excel ziņojumiem, lai iekļautos izpildvaru prezentācijās vai tabulās. tas novērš manuālo ekrāna attēlu un nodrošina konsekventu, augstas kvalitātes vizualizāciju, kas precīzi atspoguļo avota datus.
Datu integrācijas darba plūsmas
Integrācijas darba plūsmas var automātiski pārvērst Excel balstītos grafikus attēla formātos, lai iekļautos PDF ziņojumos, tīmekļa portālos vai e-pastā.
Automatizēta dokumentu apstrāde
Dokumentu ģenerēšanas sistēmas var programmatiski izrakstīt grafikus un vizualizācijas no Excel darba grāmatām, lai izveidotu profesionālus ziņojumus, kas apvieno datus, tekstu un redzes elementus.
Kopīgi izaicinājumi un risinājumi
1. izaicinājums: augsta attēla kvalitātes saglabāšana
Lēmums: Konfigurējiet ImageOrPrintOptions ar atbilstošiem kvalitātes iestatījumiem un izšķirtspējas parametriem, lai nodrošinātu optimālu iznākumu. prezentācijām un drukātiem materiāliem izmantojiet 90 vai augstākus un apsveriet pielāgojumus DPI, pamatojoties uz paredzēto lietošanu.
2. izaicinājums: pārvaldīt lielas darba vietas
Lēmums: Izmantojiet ImageOrPrintOptions.PageIndex un PageCount īpašības, lai apstrādātu īpašas daļas lielu darba lapu.
3. izaicinājums: nesaskaņots pārvietošanās apkārtējā vidē
Lēmums: Pārliecinieties, ka Excel failā izmantojamie burti ir pieejami serverī, vai izmantojiet burtu aizstāšanas iestatījumus Aspose.Cells. rūpīgi pārbaudiet dažādās izvietošanas vidēs un apsveriet nepieciešamos burtus iekļaušanu jūsu pieteikumā.
Darbības apsvērumi
- Izmantojiet atmiņas plūsmas failu I/O vietā, pārvēršot vairākus attēlus vienā kompleksa procesā
- Daudzveidīgajā vidē piemēroti slēgšanas mehānismi, piekļūstot kopīgiem resursiem
- Ņemiet vērā lapu izmēru un sarežģītību, nosakot kvalitātes iespējas – lielāka kompleksitāte prasa vairāk apstrādes resursu
Labākās prakses
- Ieviest caching mehānismus bieži pieejamajām diagrammām, lai izvairītos no atkārtotām konversijām
- Iestatīt sistemātisku nosaukuma konvenciju, lai iznākumu failiem sekotu katra attēla avotu
- Iekļauj metadatus attēla iznākuma direktorijā, lai saglabātu izsekojamību atpakaļ uz avotu Excel failiem
- Ievadiet Excel failus pirms apstrādes, lai pārliecinātos, ka tie satur gaidītos grafikus un datus
- Īstenošanas logging, lai sekmētu veiksmīgas konversijas un jebkādas problēmas, kas rodas apstrādes laikā
Augstākie scenāriji
Lai iegūtu sarežģītākus prasības, apsveriet šos progresīvus īstenojumus:
Scenārs 1: Izņemot tikai konkrētus grafikus no darba lapas
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
});
}
}
2. scenārijs: Multi-Chart Dashboard attēla izveide
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);
}
}
Conclusion
Izmantojot Aspose.Cells LowCode ImageConverter, jūs varat efektīvi konvertēt Excel grafikus un darba lapus augstas kvalitātes PNG attēliem un vienkāršot vizuālo aktīvu izveidi ziņojumiem un prezentācijām.
Lai iegūtu vairāk informācijas un papildu piemēru, atsauciet uz Aspose.Cells.LowCode API atsauce .