Cómo añadir, extraer y eliminar imágenes de las hojas de cálculo

por Chaknith Bin

Introducción

Añadiendo imágenes, los usuarios pueden enriquecer sus datos con gráficos o ilustraciones relevantes. Eliminar o borrar imágenes simplifica la edición y organización de contenidos. Además, la posibilidad de recuperar imágenes permite reutilizarlas en otros documentos o aplicaciones, así como actualizar las imágenes existentes. En conjunto, estas funciones aumentan el control del usuario sobre las imágenes, mejoran la experiencia general del usuario y permiten manipular imágenes sin problemas dentro de los libros de Excel.


Biblioteca NuGet C# para Excel

Instalar con NuGet

Install-Package IronXL.Excel
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Ejemplo de adición de imágenes

Para insertar una imagen en una hoja de cálculo, utilice la función InsertarImagen que admite varios tipos de imágenes, como JPG/JPEG, BMP, PNG, GIF y TIFF. Debe especificar las esquinas superior izquierda e inferior derecha de la imagen para determinar sus dimensiones, calculadas restando los valores de columna y fila. Por ejemplo, puedes probar los siguientes enfoques:

  • Para una imagen de tamaño 1x1:
    • hoja de trabajo.InsertImage("imagen.gif", 5, 1, 6, 2);
  • Para un tamaño de imagen de 2x2:

    • hoja de trabajo.InsertImage("imagen.gif", 5, 1, 7, 3);

    Tenga en cuenta
    Los ID de imagen generados siguen un patrón de 1, 3, 5, 7, etc.

:path=/static-assets/excel/content-code-examples/how-to/add-remove-extract-worksheet-images-insert.cs
using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;

//  Insertar imágenes
workSheet.InsertImage("ironpdf.jpg", 2, 2, 4, 4);
workSheet.InsertImage("ironpdfIcon.png", 2, 6, 4, 8);

workBook.SaveAs("insertImages.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Create()
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

'  Insertar imágenes
workSheet.InsertImage("ironpdf.jpg", 2, 2, 4, 4)
workSheet.InsertImage("ironpdfIcon.png", 2, 6, 4, 8)

workBook.SaveAs("insertImages.xlsx")
VB   C#

Hoja de cálculo de resultados

Insertar imagen

Ejemplo de extracción de imágenes

Para extraer imágenes de la hoja de cálculo seleccionada, basta con acceder a la función Imágenes que proporciona una lista de todas las imágenes contenidas en la hoja. A partir de esta lista, puede realizar diversas operaciones, como exportar, redimensionar, recuperar posiciones y obtener los datos en bytes de cada imagen. En particular, los ID de imagen siguen un patrón impar, incrementándose en la secuencia de 1, 3, 5, 7, etc.

:path=/static-assets/excel/content-code-examples/how-to/add-remove-extract-worksheet-images-extract.cs
using IronSoftware.Drawing;
using IronXL;
using IronXL.Drawing;
using System;
using System.Collections.Generic;

WorkBook workBook = WorkBook.Load("insertImages.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

//  Recuperar imágenes
List<IronXL.Drawing.Images.IImage> images = workSheet.Images;

//  Seleccione cada imagen
foreach (IronXL.Drawing.Images.IImage image in images)
{
    //  Guardar la imagen
    AnyBitmap anyBitmap = image.ToAnyBitmap();
    anyBitmap.SaveAs($"{image.Id}.png");

    //  Cambiar el tamaño de la imagen
    image.Resize(1,3);

    //  Recuperar la posición de la imagen
    Position position = image.Position;
    Console.WriteLine("top row index: " + position.TopRowIndex);
    Console.WriteLine("bottom row index: " + position.BottomRowIndex);

    //  Recuperar datos de bytes
    byte[] imageByte = image.Data;
}

workBook.SaveAs("resizeImage.xlsx");
Imports IronSoftware.Drawing
Imports IronXL
Imports IronXL.Drawing
Imports System
Imports System.Collections.Generic

Private workBook As WorkBook = WorkBook.Load("insertImages.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

'  Recuperar imágenes
Private images As List(Of IronXL.Drawing.Images.IImage) = workSheet.Images

'  Seleccione cada imagen
For Each image As IronXL.Drawing.Images.IImage In images
	'  Guardar la imagen
	Dim anyBitmap As AnyBitmap = image.ToAnyBitmap()
	anyBitmap.SaveAs($"{image.Id}.png")

	'  Cambiar el tamaño de la imagen
	image.Resize(1,3)

	'  Recuperar la posición de la imagen
	Dim position As Position = image.Position
	Console.WriteLine("top row index: " & position.TopRowIndex)
	Console.WriteLine("bottom row index: " & position.BottomRowIndex)

	'  Recuperar datos de bytes
	Dim imageByte() As Byte = image.Data
Next image

workBook.SaveAs("resizeImage.xlsx")
VB   C#
Imágenes extraídas
Tamaño de la imagen

Eliminar imagen Ejemplo

Tras la ejemplo de extracción de imágenespuede eliminar fácilmente cualquier imagen insertada utilizando su número de índice correspondiente. Basta con pasar el número de identificación de la imagen a la función QuitarImagen para eliminarlo de la hoja de cálculo.

:path=/static-assets/excel/content-code-examples/how-to/add-remove-extract-worksheet-images-remove.cs
using IronXL;

WorkBook workBook = WorkBook.Load("insertImages.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

//  Eliminar imagen
workSheet.RemoveImage(3);

workBook.SaveAs("removeImage.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("insertImages.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

'  Eliminar imagen
workSheet.RemoveImage(3)

workBook.SaveAs("removeImage.xlsx")
VB   C#

Chaknith Bin

Ingeniero de software

Chaknith es el Sherlock Holmes de los desarrolladores. La primera vez que se le ocurrió que podría tener futuro en la ingeniería de software fue cuando hacía retos de código por diversión. Su trabajo se centra en IronXL e IronBarcode, pero se enorgullece de ayudar a los clientes con todos los productos. Chaknith aprovecha sus conocimientos, adquiridos hablando directamente con los clientes, para ayudar a mejorar los propios productos. Sus comentarios anecdóticos van más allá de los tickets de Jira y apoyan el desarrollo de productos, la documentación y el marketing, para mejorar la experiencia general del cliente.Cuando no está en la oficina, se le puede encontrar aprendiendo sobre aprendizaje automático, codificación y senderismo.