Kaip konvertuoti "Excel" grafikus ir lapus į PNG vaizdus
Šiame straipsnyje parodyta, kaip konvertuoti „Excel“ grafikus ir darbalaikius į PNG vaizdus naudojant „Aspose.Cells LowCode ImageConverter“ .NET programomis. „ImageConvert“ suteikia supaprastintą požiūrį į Excel vizualinių elementų eksportavimą kaip aukštos kokybės vaizdų, nereikalaujant išsamios kodavimo ar gilios žinios apie Excel vidaus struktūras.
Realaus pasaulio problemos
Ataskaitos dizaineriai ir verslo analitikai dažnai turi įtraukti “Excel” pagrįstą vaizdavimą į pristatymus, dokumentus ir žiniatinklio programas. rankiniu būdu imtis ekrano nuotraukų arba naudojant sudėtingas vaizdo manipuliavimo bibliotekų rezultatas yra nesuderinama kokybė, prarastas formatavimas ir reikšmingas plėtros viršūnė.
Sprendimo apžvalga
Naudojant Aspose.Cells LowCode ImageConverter, mes galime efektyviai išspręsti šį iššūkį su minimaliu kodu. Šis sprendimas idealus ataskaitų dizaineriams ir verslo analitikams, kurie turi programuojamai sukurti aukštos kokybės vizualinius turtus iš “Excel” duomenų, išlaikydami formatavimą ir vizualinį ištikimybę.
Prerequisites
Prieš įgyvendinant sprendimą, įsitikinkite, kad turite:
- „Visual Studio 2019“ arba vėliau
- .NET 6.0 arba naujesnė (kompatyvi su .Net Framework 4.6.2+)
- Aspose.Cells .NET paketui, įdiegtam naudojant NuGet
- Pagrindinis C# programavimo supratimas
PM> Install-Package Aspose.Cells
Žingsnis po žingsnio įgyvendinimas
1 žingsnis: Įdiegti ir konfigūruoti Aspose.Cells
Į savo projektą pridėkite Aspose.Cells paketą ir įtraukti reikiamus pavadinimų erdves:
using Aspose.Cells;
using Aspose.Cells.LowCode;
using Aspose.Cells.Rendering;
using System.IO;
2 žingsnis: paruoškite savo įvesties duomenis
Identifikuokite „Excel“ failą, kuriame yra grafikos ar darbalaukio, kuriuos norite konvertuoti į PNG vaizdus. Įsitikinkite, kad failas egzistuoja ir yra prieinamas iš jūsų programos:
// Define the path to your Excel file
string excelFilePath = "reports/quarterly_sales.xlsx";
// Ensure the directory for output exists
Directory.CreateDirectory("result");
3 žingsnis: nustatykite ImageConverter parinktį
Nustatykite ImageConverter proceso parinktis pagal jūsų poreikius:
// 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 žingsnis: atlikite ImageConverter procesą
Atlikite „ImageConverter“ operaciją su konfigūruotais variantais:
// 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 žingsnis: tvarkykite išėjimą
Apdoroti ir naudoti sukurtus PNG vaizdus, kaip reikia jūsų programai:
// 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 žingsnis: klaidų tvarkymas
Pridėti tinkamą klaidų tvarkymą, kad būtų užtikrintas tvirtas veikimas:
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 žingsnis: optimizuokite efektyvumą
Apsvarstykite šiuos optimizavimo metodus gamybos aplinkai:
- Naudokite atminties srautus didelio tūrio apdorojimui, kad būtų išvengta failų I/O viršūnės
- Įdiegti lygiagrečią apdorojimą kelioms diagramoms ar darbalaukėms
- Pritaikyti vaizdo kokybės nustatymus, kad būtų tinkamai subalansuojama kokybė ir failo dydis
// 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 žingsnis: pilnas įgyvendinimo pavyzdys
Štai pilnas darbo pavyzdys, kuris parodo visą 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);
}
}
}
}
Naudokite atvejus ir paraiškas
Įmonės ataskaitų sistemos
Finansų analitikai gali automatiškai generuoti vizualinį turtą iš “Excel” ataskaitų, kad būtų įtraukti į vykdomas pristatymus ar lentynus. tai pašalina rankinius ekranų nuotėkius ir užtikrina nuoseklias, aukštos kokybės vaizdavimus, kurie tiksliai atspindi šaltinio duomenis.
Duomenų integracijos darbo srautas
Integracijos darbo srautas gali automatiškai konvertuoti “Excel” grindžiamus grafikus į vaizdo formatus, kad būtų įtraukti į PDF ataskaitas, žiniatinklio portalus ar el. Pašto pranešimus.
Automatinis dokumentų apdorojimas
Dokumentų generavimo sistemos gali programuojamai ištraukti grafikus ir vaizdavimus iš “Excel” darbo knygų, kad būtų sukurtos profesionalios ataskaitos, kurios sujungia duomenis, tekstą ir vizualinius elementus.
Bendrieji iššūkiai ir sprendimai
1 iššūkis: išlaikyti aukštą vaizdo kokybę
Išsprendimas: Konfigūruokite „ImageOrPrintOptions“ su atitinkamais kokybės parametrais ir rezoliucijos parametrais, kad būtų užtikrintas optimalus rezultatas. pristatymams ir spausdintuosioms medžiagoms naudokite 90 ar aukštesnes ir apsvarstykite DPI nustatymų koregavimą remiantis numatytu naudojimu.
2 iššūkis: didelių darbų tvarkymas
Išsprendimas: Naudokite ImageOrPrintOptions.PageIndex ir PageCount savybes, kad apdorotumėte konkrečias didelių darbalaukų dalis.Daugeliems darbaliukams apsvarstykite, ar naudojate skirstymo metodus, konfigūruodami pritaikytus puslapio nustatymus „Excel“ faile.
3 iššūkis: nesąžiningas judėjimas aplinkose
Išsprendimas: Įsitikinkite, kad “Excel” failo fontai yra prieinami serveryje arba naudokite “Aspose.Cells” fontų pakeitimo nustatymus. Išsamiai išbandykite įvairias diegimo aplinkas ir apsvarstykite, kaip įtraukti reikiamus fontus į jūsų programą.
Veiksmingumo apžvalgos
- Naudokite atminties srautus vietoj failų I/O konvertuojant kelis vaizdus viename pakuotės procese
- Daugiapakopėms aplinkoms, taikant tinkamus užrakinimo mechanizmus, kai pasiekiami bendrieji ištekliai
- Apsvarstykite lapų dydį ir sudėtingumą nustatant kokybės parinktis – didesnė sudėtingumas reikalauja daugiau apdorojimo išteklių
Geriausios praktikos
- Įdiegti caching mechanizmus dažnai prieinamoms diagramoms, kad būtų išvengta pakartotinių konvertavimų
- Sukurkite sistemingą pavadinimo konvenciją išvestiniams failams, kad būtų galima sekti kiekvieno vaizdo šaltinį
- Įtraukti metaduomenis į vaizdo išleidimo katalogą, kad būtų išlaikytas atsekamumas atgal į šaltinį Excel failus
- Prieš apdorojimą patvirtinkite „Excel“ įvesties failus, kad užtikrintumėte, jog jose yra numatytų diagramo ir duomenų
- Įdiegti prisijungimą, kad būtų galima sekti sėkmingus konvertavimus ir problemas, kylančias apdorojimo metu
Išplėstiniai scenarijai
Siekiant sudėtingesnių reikalavimų, apsvarstykite šiuos pažangius įgyvendinimus:
1 scenarijus: išskiriant tik konkrečius grafikus iš darbo lapų
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 scenarijus: Multi-Chart Dashboard vaizdo kūrimas
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
Įdiegdami „Aspose.Cells LowCode ImageConverter“, galite efektyviai konvertuoti „Excel“ grafikus ir darbalaikius į aukštos kokybės PNG vaizdus ir supaprastinti vizualinio turto kūrimą ataskaitoms ir pristatymams.
Norėdami gauti daugiau informacijos ir papildomų pavyzdžių, žr. Aspose.Cells.LowCode API nuoroda .