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.
- Utwórz projekt Visual Studio do demonstracji autofit komórek w arkuszu Excel.
- Zainstaluj bibliotekę IronXL w projekcie.
- Autofit szerokość kolumny używając biblioteki IronXL.
- Autofit wysokość wiersza używając biblioteki IronXL.
- 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
- Ł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ę.
- 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.
- 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.
- 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.
- 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

Podaj nazwę projektu i lokalizację

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

Krok 2: Zainstaluj bibliotekę IronXL w projekcie.
Zainstaluj bibliotekę IronXL z Menedżera Pakietów NuGet w Visual Studio

Pakiet można również zainstalować, korzystając z polecenia NuGet line
dotnet add package IronXL.Excel --version 2024.3.20

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.

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
Wyjaśnienie kodu
- Początkowo ładujemy FinancialSample.xlsx za pomocą metody
WorkBook.Load(). - Następnie otrzymujemy licznik kolumn do dostosowań.
- Iterujemy przez wszystkie indeksy kolumn, aby automatycznie dostosować szerokości kolumn.
- 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.

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.

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
Wyjaśnienie kodu
- Początkowo ładujemy FinancialSample.xlsx za pomocą metody
WorkBook.Load(). - Otrzymujemy całkowitą liczbę wierszy.
- Iterujemy przez wszystkie indeksy wierszy, aby automatycznie dostosować wysokości wierszy.
- Na koniec zapisujemy wyniki do nowego pliku o nazwie
autoResizeRows.xlsx.
Plik wyjściowy w formacie Excel

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

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")
Wyjaśnienie kodu
- Załaduj FinancialSample.xlsx za pomocą funkcji
WorkBook.Load(). - Pobierz konkretne wiersze i kolumny, aby ręcznie dostosować ich wysokość i szerokość.
- Ustaw pożądane wartości wysokości i szerokości.
- Zapisz zmodyfikowany plik pod nazwą
specificValue.xlsx.
Plik wyjściowy w formacie Excel

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.




