Jak dodawać, wyodrębniać i usuwać obrazy z arkuszy | IronXL

Jak dodawać, wyodrębniać i usuwać obrazy w Excelu za pomocą C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL umożliwia programistom C# programowe wstawianie obrazów do arkuszy kalkulacyjnych Excel, wyodrębnianie istniejących obrazów wraz z ich właściwościami oraz usuwanie niechcianych obrazów przy użyciu prostych metod API bez zależności od Interop Excel. Ta funkcjonalność jest niezbędna podczas tworzenia plików Excel w .NET, które wymagają elementów wizualnych, takich jak loga firmowe, obrazy produktów lub grafiki do wizualizacji danych.

Dodawanie obrazów wzbogaca dane o istotne grafiki lub ilustracje. Usuwanie obrazów upraszcza edycję i organizację treści. Wyodrębnianie obrazów pozwala na ich wykorzystanie w innych dokumentach lub aplikacjach i aktualizowanie istniejących obrazów. Te funkcje zapewniają pełną kontrolę nad manipulacją obrazami w skoroszytach Excel.

Szybki start: Wstaw, wyodrębnij i usuń obrazy za jednym razem

Użyj intuicyjnego API IronXL, aby dodawać, pobierać i usuwać obrazy z arkuszy w zaledwie kilku liniach. Ten przykład pokazuje, jak wstawić obraz, uzyskać do niego dostęp za pomocą kolekcji Images i usunąć go — wszystko bez dotykania Interop.

  1. Install IronXL with NuGet Package Manager

    PM > Install-Package IronXl.Excel
  2. Skopiuj i uruchom ten fragment kodu.

    workSheet.InsertImage("logo.png", 1, 1, 3, 3);
    workSheet.RemoveImage(1);
    var firstImage = workSheet.Images[0];
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronXL w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer


Jak dodać obrazy do arkuszy kalkulacyjnych Excel?

To insert an image into a spreadsheet, use the InsertImage method, which supports various image types including JPG/JPEG, BMP, PNG, GIF, and TIFF. Ta funkcja jest szczególnie przydatna, gdy trzeba tworzyć wykresy Excel w C# i uzupełniać je dodatkowymi elementami wizualnymi. Określ górny lewy i dolny prawy róg obrazu, aby określić jego wymiary, obliczane przez odjęcie wartości kolumny i wiersza.

Sygnatura metody wymaga pięciu parametrów: ścieżki do pliku obrazka oraz czterech liczb całkowitych reprezentujących kolumnę początkową, wiersz początkowy, kolumnę końcową i wiersz końcowy. Obraz zostanie rozciągnięty lub skompresowany, aby zmieścić się w zdefiniowanym zakresie komórek. Na przykład:

  • Dla obrazu o rozmiarze 1x1:
    • worksheet.InsertImage("image.gif", 5, 1, 6, 2);
  • Dla obrazu o rozmiarze 2x2:
    • worksheet.InsertImage("image.gif", 5, 1, 7, 3);

Podczas pracy z obrazami w Excelu zrozum, jak IronXL zarządza nimi wewnętrznie. Każdy wstawiony obraz otrzymuje unikalny ID, który podąża za specyficznym wzorcem.

Zwróć uwagęGenerowane ID obrazów podążają za wzorcem 1, 3, 5, 7 itd.
Ta sekwencja nieparzystych liczb jest istotna, gdy odnosisz się do konkretnego obrazu w celu operacji ekstrakcji lub usuwania.

: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;

// Insert images
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

' Insert images
workSheet.InsertImage("ironpdf.jpg", 2, 2, 4, 4)
workSheet.InsertImage("ironpdfIcon.png", 2, 6, 4, 8)

workBook.SaveAs("insertImages.xlsx")
$vbLabelText   $csharpLabel

Metoda InsertImage zapewnia elastyczność w pozycjonowaniu i rozmiarach obrazów w arkuszu kalkulacyjnym. W przeciwieństwie do ręcznego wstawiania obrazów w Excelu, wstawianie programowe zapewnia spójne umieszczenie w wielu plikach, co czyni je idealnym do generowania raportów lub dokumentów wymagających standardowego formatowania. To podejście jest szczególnie korzystne podczas pracy z Excel w C# bez Interop, ponieważ eliminuje zależności od instalacji Microsoft Office.

Jak wygląda wstawiony obraz w Excelu?

Arkusz z dwoma kolorowymi logo umieszczonymi w komórkach C4 i C7, pokazujący pomyślnie wstawiony obraz

Jak mogę wyodrębnić obrazy z plików Excel?

To extract images from the selected worksheet, access the Images property, which provides a list of all images contained within the sheet. Ta funkcja jest niezbędna, gdy trzeba wczytać pliki Excel bez Interop i przetworzyć ich osadzone treści wizualne. Z tej listy możesz wykonać różne operacje, takie jak eksportowanie, zmiana rozmiaru, pobieranie pozycji i uzyskiwanie danych bajtowych każdego obrazu. ID obrazów podążają za wzorcem nieparzystych liczb, zwiększając się w sekwencji 1, 3, 5, 7 itd.

Proces wyodrębniania zapewnia kompleksowy dostęp do właściwości i danych obrazów, umożliwiając programistom:

  • Eksportowanie obrazów do różnych formatów (PNG, JPEG, BMP itp.)
  • Pobieranie informacji o pozycjonowaniu obrazów w celu zachowania układu
  • Dostęp do surowych danych bajtowych w celu przetwarzania lub przechowywania
  • Zmiana rozmiaru obrazów programowo bez zewnętrznych bibliotek przetwarzania obrazu

Ta funkcjonalność jest nieoceniona podczas migracji treści pomiędzy różnymi formatami dokumentów lub podczas budowy systemów, które muszą katalogować i zarządzać zasobami wizualnymi z plików Excel. Możliwość programowego wyodrębniania obrazów wspiera również zautomatyzowane procesy kontroli jakości, w których obrazy potrzebują walidacji lub przetwarzania zgodnie z określonymi zasadami biznesowymi.

: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;

// Retreive images
List<IronXL.Drawing.Images.IImage> images = workSheet.Images;

// Select each image
foreach (IronXL.Drawing.Images.IImage image in images)
{
    // Save the image
    AnyBitmap anyBitmap = image.ToAnyBitmap();
    anyBitmap.SaveAs($"{image.Id}.png");

    // Resize the image
    image.Resize(1,3);

    // Retrieve image position
    Position position = image.Position;
    Console.WriteLine("top row index: " + position.TopRowIndex);
    Console.WriteLine("bottom row index: " + position.BottomRowIndex);

    // Retrieve byte data
    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

' Retreive images
Private images As List(Of IronXL.Drawing.Images.IImage) = workSheet.Images

' Select each image
For Each image As IronXL.Drawing.Images.IImage In images
	' Save the image
	Dim anyBitmap As AnyBitmap = image.ToAnyBitmap()
	anyBitmap.SaveAs($"{image.Id}.png")

	' Resize the image
	image.Resize(1,3)

	' Retrieve image position
	Dim position As Position = image.Position
	Console.WriteLine("top row index: " & position.TopRowIndex)
	Console.WriteLine("bottom row index: " & position.BottomRowIndex)

	' Retrieve byte data
	Dim imageByte() As Byte = image.Data
Next image

workBook.SaveAs("resizeImage.xlsx")
$vbLabelText   $csharpLabel
File explorer showing extracted PNG images and files in Documents/Replicate/bin/Debug/net6.0 directory
Spreadsheet showing three extracted images positioned in cells C2-E2, C5-E6, and C8-E10 with coordinate grid

Jak usunąć obrazy z arkuszy kalkulacyjnych Excel?

Following the extract images example, you can easily remove any inserted image using its corresponding index number. Przekaż numer ID obrazu do metody RemoveImage, aby usunąć go z arkusza kalkulacyjnego. Ta operacja jest szczególnie użyteczna, gdy trzeba edytować pliki Excel w C#, aby uporządkować niechciane elementy wizualne lub przygotować dokumenty dla różnych odbiorców.

Proces usuwania jest prosty, ale wymaga zrozumienia systemu ID obrazu. Ponieważ IronXL przydziela ID w sekwencji nieparzystych liczb (1, 3, 5, 7...), śledź te ID podczas zarządzania wieloma obrazami. Rozważ wdrożenie systemu mapowania w swojej aplikacji, aby kojarzyć znaczące nazwy z ID obrazów w celu łatwiejszego zarządzania.

: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;

// Remove image
workSheet.RemoveImage(3);

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

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

' Remove image
workSheet.RemoveImage(3)

workBook.SaveAs("removeImage.xlsx")
$vbLabelText   $csharpLabel

Dla bardziej złożonych scenariuszy obejmujących wiele arkuszy i obrazów, zapoznaj się z zarządzaniem arkuszami, aby zrozumieć, jak operacje obrazami współdziałają z operacjami na poziomie arkusza. Dodatkowo, podczas pracy z chronionymi plikami Excel, zapoznaj się z naszym przewodnikiem na temat ochrony plików Excel, aby zrozumieć, jak operacje obrazami współdziałają z skoroszytami chronionymi hasłem.

Często Zadawane Pytania

Jak programowo dodawać obrazy do arkuszy Excel w C#?

IronXL dostarcza metodę InsertImage do dodawania obrazów do arkuszy Excel. Wystarczy określić ścieżkę do pliku obrazu oraz współrzędne zasięgu komórki (lewy górny i prawy dolny róg), gdzie obraz ma się pojawić. IronXL obsługuje różne formaty obrazów, w tym JPG/JPEG, BMP, PNG, GIF i TIFF.

Jakie formaty obrazów są obsługiwane przy wstawianiu do Excel?

IronXL obsługuje wiele formatów obrazów do wstawiania w arkuszach Excel, w tym JPG/JPEG, BMP, PNG, GIF i TIFF. Ta elastyczność pozwala pracować z różnymi rodzajami obrazów często używanymi w dokumentach biznesowych i wizualizacji danych.

Jak wyodrębnić istniejące obrazy z arkusza Excel?

Możesz wyodrębniać obrazy z arkuszy Excel używając właściwości kolekcji Images IronXL. Dostęp do worksheet.Images[index] pozwala na uzyskanie konkretnych obrazów wraz z ich właściwościami i metadanymi, umożliwiając ponowne ich użycie w innych dokumentach lub aplikacjach.

Czy mogę programowo usuwać obrazy z plików Excel?

Tak, IronXL dostarcza metodę RemoveImage do usuwania obrazów z arkuszy. Wystarczy podać ID obrazu, aby usunąć konkretne obrazy, co daje pełną kontrolę nad zarządzaniem obrazami bez konieczności korzystania z Excel Interop.

Jak określić rozmiar i pozycję wstawianego obrazu?

Podczas korzystania z metody InsertImage w IronXL, określasz cztery współrzędne: kolumnę początkową, wiersz początkowy, kolumnę końcową i wiersz końcowy. Obraz zostanie automatycznie rozciągnięty lub skompresowany, aby zmieścić się w określonym zakresie komórek. Na przykład, InsertImage("image.gif", 5, 1, 6, 2) tworzy obraz o rozmiarze 1x1.

Czy muszę mieć zainstalowany Microsoft Excel, aby manipulować obrazami w arkuszach?

Nie, IronXL działa niezależnie, bez konieczności posiadania Microsoft Excel lub zależności Interop Excel. Można dodawać, wyodrębniać i usuwać obrazy z plików Excel programowo używając jedynie biblioteki IronXL w aplikacji .NET.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 1,950,735 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronXl.Excel
uruchom próbkę zobacz, jak Twoje dane stają się arkuszem.