Przejdź do treści stopki
KORZYSTANIE Z IRONXL
Jak automatycznie dopasować komórki w Excelu za pomocą C# | IronXL

Jak automatycznie dopasować komórki w programie Excel przy użyciu języka C#

W dzisiejszym świecie opartym na danych Microsoft Excel pozostaje niezbędnym narzędziem dla firm i profesjonalistów. Niezależnie od tego, czy chodzi o obliczenia, tworzenie raportów, czy wizualizacje danych, wszechstronność Excela jest niezrównana. Jednakże, w przypadku programowego manipulowania plikami Excel w C#, developerzy często napotykają na trudności. W tym miejscu IronXL biblioteka wchodzi do gry, oferując płynne rozwiązanie dla automatyzacji Excela w środowisku C#.

IronXL biblioteka od Iron Software dostarcza intuicyjnych interfejsów API do obsługi dokumentów Excel bezproblemowo w środowiskach C# .NET i VB.NET. Dzięki IronXL nie ma potrzeby instalowania komponentów Microsoft Office ani Excel Interop. Umożliwia programistom bez wysiłku odczytywanie, edytowanie i tworzenie plików arkuszy Excel, oferując pełne wsparcie dla różnych frameworków .NET, w tym .NET 8, 7, 6, Core Frameworks i środowisk Azure.

W tym artykułe dowiemy się, jak automatycznie dopasować szerokość i wysokość kolumn w programie Excel przy użyciu języka C# i biblioteki IronXL.

  1. Utwórz projekt Visual Studio do demonstracji autofit komórek w arkuszu Excel.
  2. Zainstaluj bibliotekę IronXL w projekcie.
  3. Autofit szerokość kolumny używając biblioteki IronXL.
  4. Autofit wysokość wiersza używając biblioteki IronXL.
  5. Ręczne ustawianie szerokości i wysokości kolumny i wiersza używając biblioteki IronXL.

IronXL

IronXL biblioteka jest wszechstronną biblioteką .NET zaprojektowaną, aby uprościć manipulację arkuszami Excel dla programistów C#. Oferując szybki i intuicyjny interfejs API, IronXL umożliwia użytkownikom bez wysiłku uzyskiwanie dostępu, modyfikowanie i generowanie plików Excel bez polegania na Office Interop. Kompatybilność obejmuje różne frameworki .NET, w tym .NET Core i Azure, bez wymagania specjalnych zależności ani instalacji Microsoft Office. Dzięki wsparciu dla wielu języków .NET, takich jak C#, VB.NET i F#, IronXL obsługuje szeroki zakres scenariuszy deweloperskich, w tym aplikacje konsolowe, internetowe i desktopowe. Co więcej, kompatybilność IronXL obejmuje różne platformy, w tym Windows, Linux, macOS, Docker, Azure i AWS, co czyni ją niezbędnym narzędziem dla deweloperów poszukujących efektywnej integracji Excel w różnych środowiskach.

Kluczowe cechy biblioteki IronXL

  1. Łatwa integracja: IronXL bezproblemowo integruje się z aplikacjami C#, dostarczając prostego i intuicyjnego API do automatyzacji Excela. Programiści mogą szybko rozpocząć pracę z minimalnym czasem krzywej uczenia się.
  2. Odczyt i zapis plików Excel: Dzięki IronXL możesz bez wysiłku odczytywać dane z istniejących plików Excel i zapisywać dane do nowych lub istniejących arkuszy kalkulacyjnych. Ta możliwość jest niezbędna do zadań takich jak import/eksport danych i generowanie raportów.
  3. Formatowanie i stylizacja: IronXL umożliwia stosowanie formatowania i stylizacji do komórek Excel, w tym czcionek, kolorów, obramowań i nie tylko. To zapewnia, że wygenerowane pliki Excel zachowują profesjonalny wygląd.
  4. Wsparcie formuł: Potrzebujesz przeprowadzać skomplikowane obliczenia lub stosować formuły do danych Excel? IronXL zapewnia wsparcie dla formuł Excel, co pozwala na automatyzację obliczeń i manipulacji danymi.
  5. Autofit komórek: Jedną z przydatnych funkcji oferowanych przez IronXL jest możliwość autofit komórek w Excel, co zapewnia, że zawartość pasuje ściśle do każdej komórki, bez skrócenia.

Krok 1: Utwórz projekt Visual Studio do demonstracji autofit komórek w arkuszu Excel.

Aby rozpocząć, stwórz projekt Visual Studio, jak pokazano poniżej. Wybierz szablon aplikacji konsolowej z listy

Jak automatycznie dopasować komórki w Excelu używając C#: Rysunek 1 - Otwórz Visual Studio i dodaj nowy projekt typu Aplikacja Konsolowa w C#.

Podaj nazwę projektu i lokalizację

Jak automatycznie dopasować komórki w Excelu używając C#: Rysunek 2 - Następnie określ nazwę projektu i lokalizację.

Wybierz wymaganą wersję .NET z listy rozwijanej i naciśnij utwórz

Jak automatycznie dopasować komórki w Excelu używając C#: Rysunek 3 - Następnie wybierz wymaganą wersję .NET Framework i kliknij Stwórz.

Krok 2: Zainstaluj bibliotekę IronXL w projekcie.

Zainstaluj bibliotekę IronXL z Menedżera Pakietów NuGet w Visual Studio

Jak automatycznie dopasować komórki w Excelu używając C#: Rysunek 4 - Zainstaluj IronXL używając Zarządzania Pakietami NuGet dla Rozwiązania, wyszukując

Pakiet można również zainstalować, korzystając z polecenia NuGet line

dotnet add package IronXL.Excel --version 2024.3.20

Jak automatycznie dopasować komórki w Excelu używając C#: Rysunek 5 - Pakiet NuGet IronXL.Excel

Z tym jesteśmy gotowi do rozpoczęcia kodowania.

Krok 3: Autofit szerokość kolumny używając biblioteki IronXL

Metoda AutoSizeColumn z biblioteki IronXL dostosowuje szerokość kolumny do zawartości. Ta metoda oblicza szerokość tekstu na podstawie czcionki użytej w komórce. Jeśli dokładna czcionka nie jest dostępna w systemie, spróbuje ją zmierzyć za pomocą domyślnej czcionki. Jeśli nie zostanie znaleziona żadna czcionka domyślna, spróbuje wykorzystać dowolną dostępną czcionkę. Jednakże, jeśli nie zostaną znalezione żadne czcionki, zostanie wyrzucony wyjątek. Używa indeksu kolumny zaczynając od zera jako parametru. Musi być w granicach określonych przez 0 i (ColumnCount - 1). ArgumentException jest zgłaszany, jeśli podany columnIndex znajduje się poza zakresem. SixLabors.Fonts.FontException jest zgłaszany, gdy na komputerze nie są zainstalowane żadne czcionki.

Teraz zobaczmy, jak możemy użyć tego do zmiany rozmiaru pliku Excel. Możesz pobrać przykładowy plik Excel z tutaj.

Plik wejściowy

Tutaj możesz zobaczyć, że szerokości kolumn nie są właściwie zdefiniowane, co sprawia, że jest to bardzo trudne do odczytania. Teraz zobaczmy jak możemy użyć biblioteki IronXL do automatycznego dopasowania szerokości kolumn w arkuszu Excel.

Jak automatycznie dopasować komórki w Excelu używając C#: Rysunek 6 - Plik wejściowy Excel

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var colCount = workSheet.Columns.Count();

for (int i = 0; i < colCount; i++)
{ 
    // Auto-fit column width for index i
    workSheet.AutoSizeColumn(i);
}

// Save the autofitted workbook as a new file
workBook.SaveAs("autoResize.xlsx"); // Result file
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var colCount = workSheet.Columns.Count();

for (int i = 0; i < colCount; i++)
{ 
    // Auto-fit column width for index i
    workSheet.AutoSizeColumn(i);
}

// Save the autofitted workbook as a new file
workBook.SaveAs("autoResize.xlsx"); // Result file
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private colCount = workSheet.Columns.Count()

For i As Integer = 0 To colCount - 1
	' Auto-fit column width for index i
	workSheet.AutoSizeColumn(i)
Next i

' Save the autofitted workbook as a new file
workBook.SaveAs("autoResize.xlsx") ' Result file
$vbLabelText   $csharpLabel

Wyjaśnienie kodu

  1. Początkowo ładujemy FinancialSample.xlsx za pomocą metody WorkBook.Load().
  2. Następnie otrzymujemy licznik kolumn do dostosowań.
  3. Iterujemy przez wszystkie indeksy kolumn, aby automatycznie dostosować szerokości kolumn.
  4. Na koniec zapisujemy wyniki do nowego pliku o nazwie autoResize.xlsx.

Plik wyjściowy

Poniżej możesz zobaczyć, że wszystkie kolumny są automatycznie dostosowane i widoczne.

Jak automatycznie dopasować komórki w Excelu używając C#: Rysunek 7 - Wyjściowy excel z automatycznie dopasowaną szerokością kolumn.

Krok 4: Autofit wysokość wiersza przy użyciu biblioteki IronXL

Metoda AutoSizeRow dostosowuje wysokość wiersza, aby pomieścić jego zawartość. Warto zauważyć, że ta metoda oblicza wysokość tekstu na podstawie czcionki użytej w komórce. Jeśli dokładna czcionka nie jest dostępna w systemie, spróbuje ją zmierzyć za pomocą domyślnej czcionki. Jeśli nie zostanie znaleziona żadna czcionka domyślna, spróbuje wykorzystać dowolną dostępną czcionkę. Jednakże, jeśli nie zostaną znalezione żadne czcionki, zostanie wyrzucony wyjątek. Używa indeksu wiersza zaczynając od zera jako parametru. Musi być w granicach określonych przez 0 i (RowCount - 1). ArgumentException jest zgłaszany, jeśli podany rowIndex znajduje się poza zakresem. SixLabors.Fonts.FontException jest zgłaszany, gdy na komputerze nie są zainstalowane żadne czcionki.

Plik Excel do przetworzenia

W poniższym przykładzie możesz zobaczyć, że niektóre wiersze nie są dostosowane do odpowiedniego pomieszczenia danych. Teraz zobaczmy kod C# do automatycznego dostosowywania wysokości wierszy Excel.

Jak automatycznie dopasować komórki w Excelu używając C#: Rysunek 8 - Plik wejściowy Excel

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var rowCount = workSheet.RowCount;

for (int i = 0; i < rowCount; i++)
{
    // Auto-fit row height for index i
    workSheet.AutoSizeRow(i);
}

// Save the autofitted workbook as a new file
workBook.SaveAs("autoResizeRows.xlsx"); // Result file
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
var rowCount = workSheet.RowCount;

for (int i = 0; i < rowCount; i++)
{
    // Auto-fit row height for index i
    workSheet.AutoSizeRow(i);
}

// Save the autofitted workbook as a new file
workBook.SaveAs("autoResizeRows.xlsx"); // Result file
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private rowCount = workSheet.RowCount

For i As Integer = 0 To rowCount - 1
	' Auto-fit row height for index i
	workSheet.AutoSizeRow(i)
Next i

' Save the autofitted workbook as a new file
workBook.SaveAs("autoResizeRows.xlsx") ' Result file
$vbLabelText   $csharpLabel

Wyjaśnienie kodu

  1. Początkowo ładujemy FinancialSample.xlsx za pomocą metody WorkBook.Load().
  2. Otrzymujemy całkowitą liczbę wierszy.
  3. Iterujemy przez wszystkie indeksy wierszy, aby automatycznie dostosować wysokości wierszy.
  4. Na koniec zapisujemy wyniki do nowego pliku o nazwie autoResizeRows.xlsx.

Plik wyjściowy w formacie Excel

Jak automatycznie dopasować komórki w Excelu używając C#: Rysunek 9 - Wyjściowy excel z automatycznie dopasowaną wysokością wiersza.

Krok 5: Ręczne ustawianie szerokości i wysokości kolumn oraz wierszy przy użyciu IronXL

Oprócz automatycznego dostosowywania wierszy i kolumn, IronXL oferuje również możliwość ręcznego dostosowywania szerokości i wysokości do konkretnej wartości wysokości wiersza i szerokości kolumny.

Plik Excel do przetworzenia

Jak automatycznie dopasować komórki w Excelu używając C#: Rysunek 10 - Plik wejściowy Excel

using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Manually set row height and column width
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width

// Save the workbook with specific values set
workBook.SaveAs("specificValue.xlsx");
using IronXL;
// Load example spreadsheet
WorkBook workBook = WorkBook.Load("FinancialSample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Manually set row height and column width
RangeRow row = workSheet.GetRow(0);
row.Height = 500; // Set height
RangeColumn col = workSheet.GetColumn(0);
col.Width = 5000; // Set width

// Save the workbook with specific values set
workBook.SaveAs("specificValue.xlsx");
Imports IronXL
' Load example spreadsheet
Private workBook As WorkBook = WorkBook.Load("FinancialSample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Manually set row height and column width
Private row As RangeRow = workSheet.GetRow(0)
row.Height = 500 ' Set height
Dim col As RangeColumn = workSheet.GetColumn(0)
col.Width = 5000 ' Set width

' Save the workbook with specific values set
workBook.SaveAs("specificValue.xlsx")
$vbLabelText   $csharpLabel

Wyjaśnienie kodu

  1. Załaduj FinancialSample.xlsx za pomocą funkcji WorkBook.Load().
  2. Pobierz konkretne wiersze i kolumny, aby ręcznie dostosować ich wysokość i szerokość.
  3. Ustaw pożądane wartości wysokości i szerokości.
  4. Zapisz zmodyfikowany plik pod nazwą specificValue.xlsx.

Plik wyjściowy w formacie Excel

Jak automatycznie dopasować komórki w Excelu używając C#: Rysunek 11 - Wyjściowy excel z ręcznie dostosowaną szerokością i wysokością kolumn.

Licencjonowanie

Uzyskaj bezpłatny okres próbny, aby swobodnie korzystać z wszystkich funkcji IronXL przez 30 dni.

Uzyskaną licencję należy umieścić w pliku appSettings.json:

{
  "IronXL.License.LicenseKey": "myTrialKey"
}

Wnioski

Dzięki funkcjom takim jak AutoSizeColumn i AutoSizeRow z IronXL, programiści mogą bez trudu zapewnić, że arkusze Excela dostosowują się dynamicznie do zawartości, którą zawierają, niezależnie czy to importowane dane, dynamiczne raporty, treści generowane przez użytkownika, czy wyniki analizy danych.

Kompatybilność IronXL z różnymi frameworkami .NET, w tym .NET Core i Azure, zapewnia, że deweloperzy mogą wkomponować automatyzację Excela w szeroką gamę aplikacji bez zależności od Microsoft Office lub Excel Interop. Co więcej, wsparcie dla wielu języków i platform .NET czyni IronXL wszechstronnym wyborem dla deweloperów, którzy szukają uproszczenia zadań manipulacji Excel w różnorodnych środowiskach.

W istocie IronXL umożliwia developerom zwiększenie wydajności, dokładności i elastyczności w projektach automatyzacji Excela, oferując kompleksowy zestaw funkcji, aby sprostać wymaganiom nowoczesnego rozwoju w C#. Niezależnie od tego, czy chodzi o generowanie raportów, analizę danych, czy prezentowanie informacji, IronXL dostarcza narzędzi niezbędnych do osiągnięcia sukcesu w automatyzacji Excela w ekosystemie C#.

Często Zadawane Pytania

Jak mogę automatycznie dopasować komórki w Excelu za pomocą C#?

Aby automatycznie dopasować komórki w programie Excel przy użyciu języka C#, należy skorzystać z metod AutoSizeColumn i AutoSizeRow biblioteki IronXL, które automatycznie dostosowują szerokość kolumn i wysokość wierszy do zawartości.

Jakie są zalety korzystania z biblioteki .NET do automatyzacji programu Excel?

Korzystanie z biblioteki IronXL for .NET do automatyzacji pracy z Excelem upraszcza zadania, takie jak odczytywanie, zapisywanie i formatowanie plików Excel bez konieczności instalowania pakietu Microsoft Office. Zwiększa to wydajność i dokładność aplikacji napisanych w języku C#.

Jak ręcznie dostosować szerokość kolumn i wysokość wierszy w programie Excel przy użyciu języka C#?

W IronXL można ręcznie dostosować szerokość kolumn i wysokość wierszy, używając metod GetColumn i GetRow do wskazania konkretnych kolumn i wierszy, a następnie ustawiając ich właściwości Width i Height.

Czy IronXL jest kompatybilny z projektami .NET Core?

Tak, IronXL jest w pełni kompatybilny z projektami .NET Core, co pozwala programistom na płynną integrację funkcji automatyzacji Excela w nowoczesnych środowiskach .NET.

Jak zainstalować IronXL w projekcie .NET?

Aby zainstalować IronXL w projekcie .NET, użyj menedżera pakietów NuGet w Visual Studio lub uruchom polecenie dotnet add package IronXL.Excel w wierszu poleceń.

Czy mogę korzystać z IronXL bez zainstalowanego programu Excel na moim komputerze?

Tak, IronXL pozwala na programową obsługę plików Excel w języku C# bez konieczności instalowania programu Microsoft Excel na komputerze.

Co należy zrobić, jeśli podczas automatycznego dopasowywania komórek pojawi się wyjątek związany z czcionką?

Jeśli podczas automatycznego dopasowywania komórek pojawi się błąd SixLabors.Fonts.FontException, upewnij się, że w systemie dostępne są niezbędne czcionki, ponieważ IronXL używa ich do obliczania wymiarów tekstu.

W jaki sposób IronXL obsługuje wiele języków .NET?

IronXL obsługuje wiele języków .NET, takich jak C#, VB.NET i F#, zapewniając wszechstronność i elastyczność programistom pracującym w różnych środowiskach programistycznych.

Gdzie w moim projekcie mam dodać klucz licencyjny IronXL?

Klucz licencyjny IronXL należy dodać do pliku appSettings.json projektu pod kluczem „IronXL.License.LicenseKey”, aby aktywować funkcje premium.

Jakie są kluczowe funkcje IronXL do automatyzacji programu Excel?

IronXL oferuje kluczowe funkcje, takie jak łatwa integracja z aplikacjami C#, odczyt i zapis plików Excel, stosowanie formatowania, obsługa formuł Excel oraz automatyczne dopasowywanie komórek w celu optymalizacji wyświetlania treści.

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

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie