Kā konvertēt Excel grafikas un lapas uz PNG attēliem

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 .

 Latviski