Kaip konvertuoti "Excel" grafikus ir lapus į PNG vaizdus

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 .

 Lietuvių