C# Convertir Excel a imágenes (JPG, PNG, BMP, EMF, SVG) sin MS Office

2024-01-29 09:43:55

Compartir archivos de Excel con otras personas a veces puede resultar inconveniente por varios motivos. Por ejemplo, es posible que los destinatarios no tengan Excel instalado en sus dispositivos o que estén utilizando un sistema operativo diferente que no sea compatible con Excel. Esto puede provocar problemas de compatibilidad y dificultades para acceder y ver los archivos compartidos. Además, los archivos de Excel pueden ser de gran tamaño, lo que dificulta su envío por correo electrónico u otras plataformas para compartir archivos con restricciones de tamaño.

La conversión de Excel a imágenes aborda estos desafíos al proporcionar una forma simplificada y visualmente atractiva de presentar datos. Con las imágenes, puede capturar la esencia de los datos en una sola instantánea, lo que facilita a los destinatarios captar la información de un vistazo. Ya sea un cuadro, un gráfico o una tabla, convertir Excel a imágenes le permite transformar datos complejos en un formato visualmente atractivo.

En este blog, explicaremos cómo convierta Excel a varios formatos de imagen como JPG, PNG, BMP, EMF y SVG usando C#.

Biblioteca C# para convertir Excel en imágenes

Para convertir Excel a imágenes usando C#, puede usar Spire.XLS for .NET, que es una API de Excel profesional que admite la creación, lectura, escritura, impresión y conversión de archivos de Excel en aplicaciones .NET sin depender de Microsoft Office.

Para instalar Spire.XLS for .NET, puede ejecutar el siguiente comando en la consola del Administrador de paquetes NuGet:

Install-Package Spire.XLS

Convierta una hoja de cálculo de Excel a imágenes JPG, PNG y BMP en C#

JPG, PNG y BMP son formatos de archivos de imagen populares que se utilizan para almacenar y mostrar imágenes digitales. Aquí hay una descripción concisa de cada formato:

JPG (o JPEG):

JPG (o JPEG) es un formato de imagen ampliamente utilizado conocido por su eficiente algoritmo de compresión. Se utiliza habitualmente para almacenar fotografías e imágenes complejas con muchos colores.

PNG (Gráficos de red portátiles):

PNG es un formato de imagen sin pérdidas diseñado como reemplazo del GIF (formato de intercambio de gráficos). Admite imágenes de alta calidad con transparencia y una amplia gama de colores. Los archivos PNG se utilizan a menudo para gráficos, logotipos e imágenes con bordes o texto nítidos.

BMP (mapa de bits):

BMP es un formato de imagen básico que almacena gráficos sin comprimir. Fue desarrollado por Microsoft y se utiliza a menudo cuando se requiere un control preciso a nivel de píxeles o cuando se necesita compatibilidad con software o sistemas más antiguos.

Aquí hay un ejemplo de código que muestra cómo convertir una hoja de cálculo de Excel a imágenes JPG, PNG y BMP usando C# y Spire.XLS for .NET:

  • Python
using Spire.Xls;
    using System.Drawing.Imaging;
    
    namespace ConvertExcelToImage
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                //Create a Workbook object
                Workbook workbook = new Workbook();
                //Open an Excel file
                workbook.LoadFromFile("Sample.xlsx");
    
                //Get the first worksheet
                Worksheet worksheet = workbook.Worksheets[0];
    
                //Save the worksheet to JPEG, PNG, and BMP images
                worksheet.SaveToImage("Output//SheetToJPEG.jpeg", ImageFormat.Jpeg);
                worksheet.SaveToImage("Output//SheetToPNG.png", ImageFormat.Png);
                worksheet.SaveToImage("Output//SheetToBMP.bmp", ImageFormat.Bmp);
    
                workbook.Dispose();
            }
        }
    }

C# Convert Excel to Images (JPG, PNG, BMP, EMF, SVG) without MS Office

Convierta una hoja de cálculo de Excel en una imagen EMF en C#

EMF es un formato de imagen basado en vectores que conserva la escalabilidad y la resolución de alta calidad de la hoja de trabajo original. La conversión de Excel a EMF permite una mayor edición y manipulación de la imagen utilizando software compatible, lo que la hace adecuada para fines de diseño y gráficos profesionales.

Aquí hay un ejemplo de código que muestra cómo convertir una hoja de cálculo de Excel en una imagen EMF usando C# y Spire.XLS for .NET:

  • Python
using Spire.Xls;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.IO;
    
    namespace ConvertExcelToEMF
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                //Create a Workbook object and load the Excel file
                Workbook workbook = new Workbook();
                workbook.LoadFromFile("Sample.xlsx");
    
                //Get the first worksheet
                Worksheet worksheet = workbook.Worksheets[0];
    
                //Create a memory stream
                using (MemoryStream stream = new MemoryStream())
                {
                    //Save the worksheet to the memory stream as EMF
                    worksheet.ToEMFStream(stream, worksheet.FirstRow, worksheet.FirstColumn, worksheet.LastRow, worksheet.LastColumn, EmfType.EmfPlusDual);
    
                    //Create an Image object from the memory stream
                    using (Image img = Image.FromStream(stream))
                    {
                        //Save the image as an EMF file
                        img.Save("Output//SheetToEMF.emf", ImageFormat.Emf);
                    }
                }
    
                workbook.Dispose();
            }
        }
    }

C# Convert Excel to Images (JPG, PNG, BMP, EMF, SVG) without MS Office

Convierta una hoja de cálculo de Excel en una imagen SVG en C#

SVG es un formato de imagen vectorial basado en XML que admite interactividad y se puede escalar sin pérdida de calidad. La conversión de Excel a SVG permite una representación dinámica y responsiva de la hoja de trabajo, lo que la hace ideal para aplicaciones web, visualizaciones de datos y flujos de trabajo de diseño responsivo.

Aquí hay un ejemplo de código que muestra cómo convertir una hoja de cálculo de Excel en una imagen SVG usando C# y Spire.XLS for .NET:

  • Python
using Spire.Xls;
    using System.IO;
    
    namespace ConvertExcelToSVG
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                //Create a Workbook object
                Workbook workbook = new Workbook();
                //Open an Excel file
                workbook.LoadFromFile("Sample.xlsx");
    
                //Get the first worksheet
                Worksheet worksheet = workbook.Worksheets[0];
    
                //Save the worksheet to SVG
                using (FileStream fs = new FileStream("Output//SheetToSVG.svg", FileMode.Create))
                {
                    
                    worksheet.ToSVGStream(fs, worksheet.FirstRow, worksheet.FirstColumn, worksheet.LastRow, worksheet.LastColumn);
                }
    
                workbook.Dispose();
            }
        }
    }

C# Convert Excel to Images (JPG, PNG, BMP, EMF, SVG) without MS Office

Convierta una hoja de cálculo de Excel en una imagen con una resolución específica en C#

Al convertir una hoja de cálculo de Excel en una imagen, Spire.XLS for .NET no ofrece un método directo para especificar la resolución de la imagen. Sin embargo, puedes utilizar los métodos de las clases Bitmap y Graphics para ajustar la resolución de las imágenes resultantes sin esfuerzo.

Aquí hay un ejemplo de código que muestra cómo convertir una hoja de cálculo de Excel en una imagen con una resolución específica usando C# y Spire.XLS for .NET:

  • Python
using Spire.Xls;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.IO;
    
    namespace ConvertExcelToImageWithCustomResolution
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                //Create a Workbook object
                Workbook workbook = new Workbook();
                //Open an Excel file
                workbook.LoadFromFile("Sample.xlsx");
    
                //Get the first worksheet
                Worksheet worksheet = workbook.Worksheets[0];
    
                //Convert the worksheet to EMF stream
                using (MemoryStream ms = new MemoryStream())
                {
                    worksheet.ToEMFStream(ms, 1, 1, worksheet.LastRow, worksheet.LastColumn);
    
                    //Create an image from the EMF stream
                    Image image = Image.FromStream(ms);
                    //Call the ResetResolution() method to change the resolution of the image
                    Bitmap images = ResetResolution(image as Metafile, 300);
    
                    //Save the image in JPG file format
                    images.Save("Output//SheetToImageWithCustomResolution.jpg", ImageFormat.Jpeg);
                }
    
                workbook.Dispose();
            }
    
            //Create a custom method to change image resolution
            private static Bitmap ResetResolution(Metafile mf, float resolution)
            {
                int width = (int)(mf.Width * resolution / mf.HorizontalResolution);
                int height = (int)(mf.Height * resolution / mf.VerticalResolution);
                Bitmap bmp = new Bitmap(width, height);
                bmp.SetResolution(resolution, resolution);
                Graphics g = Graphics.FromImage(bmp);
                g.DrawImage(mf, 0, 0);
                g.Dispose();
                return bmp;
            }
        }
    }

C# Convert Excel to Images (JPG, PNG, BMP, EMF, SVG) without MS Office

Convierta una hoja de cálculo de Excel en una imagen sin márgenes blancos en C#

Convertir una hoja de cálculo de Excel en una imagen sin márgenes blancos es útil para eliminar espacios en blanco innecesarios y centrarse en el contenido de la hoja de cálculo. Al eliminar los márgenes blancos, las imágenes resultantes contendrán solo los datos y elementos visuales reales del archivo de Excel, lo que las hará más atractivas visualmente y adecuadas para ciertos casos de uso.

Aquí hay un ejemplo de código que muestra cómo convertir una hoja de cálculo de Excel en una imagen sin márgenes blancos usando C# y Spire.XLS for .NET:

  • Python
using Spire.Xls;
    using System.Drawing.Imaging;
    
    namespace ConvertExcelToImage
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                //Create a Workbook object
                Workbook workbook = new Workbook();
                //Open an Excel file
                workbook.LoadFromFile("Sample.xlsx");
    
                //Get the first worksheet
                Worksheet worksheet = workbook.Worksheets[0];
    
                //Set the margin of the worksheet to 0
                worksheet.PageSetup.LeftMargin = 0;
                worksheet.PageSetup.BottomMargin = 0;
                worksheet.PageSetup.TopMargin = 0;
                worksheet.PageSetup.RightMargin = 0;
    
                //Save the worksheet to an image
                worksheet.SaveToImage("Output//SheetToImageWithoutMargins.png", ImageFormat.Png);
    
                workbook.Dispose();
            }
        }
    }

C# Convert Excel to Images (JPG, PNG, BMP, EMF, SVG) without MS Office

Convierta un rango de celdas específico de una hoja de cálculo de Excel en una imagen en C#

Además de convertir una hoja de trabajo completa en una imagen, Spire.XLS for .NET le permite convertir un rango de celdas específico en una imagen. Esto puede resultar útil para compartir o presentar una parte de los datos dentro de una hoja de trabajo.

Aquí hay un ejemplo de código que muestra cómo convertir un rango de celdas específico de una hoja de cálculo de Excel en una imagen usando C# y Spire.XLS for .NET:

  • Python
using Spire.Xls;
    using System.IO;
    
    namespace ConvertCellRangeToImage
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                //Create a Workbook object
                Workbook workbook = new Workbook();
                //Open an Excel file
                workbook.LoadFromFile("Sample.xlsx");
    
                //Get the first worksheet
                Worksheet worksheet = workbook.Worksheets[0];
                
                //Save a specific range of cells within the worksheet to an image
                worksheet.ToImage(5, 1, 16, 5).Save("Output//CellRangeToImage.png");
    
                workbook.Dispose();
            }
        }
    }

C# Convert Excel to Images (JPG, PNG, BMP, EMF, SVG) without MS Office

Obtenga una licencia gratuita

Para experimentar plenamente las capacidades de Spire.XLS for .NET sin limitaciones de evaluación, puede solicitar una licencia de prueba gratuita de 30 días.

Conclusión

Este blog proporciona una descripción general completa de cómo convertir hojas de cálculo de Excel en imágenes utilizando Spire.XLS for .NET. Sin embargo, es importante resaltar que Spire.XLS admite la conversión de archivos de Excel a una variedad de formatos de archivo más allá de las imágenes. Estas opciones de conversión adicionales incluyen Excel a PDF, Excel a HTML, Excel a texto, Excel a XPS y más.

Ver también