Automatische Größenanpassung von Zeilen und Spalten

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

von Chaknith Bin

Die Größenänderung von Zeilen und Spalten in einer Kalkulationstabelle kann viel Platz sparen und die Lesbarkeit verbessern. Die IronXL C#-Bibliothek bietet die Möglichkeit, die Größe von Zeilen und Spalten automatisch zu ändern. Da dies in C# geschieht, können die Methoden zur Größenänderung für alle vorhandenen Zeilen und Spalten aufgerufen werden, wodurch die manuelle Aufgabe in der Kalkulationstabelle automatisiert wird.

Legen Sie los mit IronXL

Beginnen Sie noch heute mit der Verwendung von IronXL in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer


Beispiel für die automatische Größenänderung von Zeilen

Die Methode "AutoSizeRow" passt die Höhe einer bestimmten Zeile automatisch an(s) auf der Grundlage ihres Inhalts.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-rows.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply auto resize on row 2
workSheet.AutoSizeRow(1);

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

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Apply auto resize on row 2
workSheet.AutoSizeRow(1)

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

Demonstration

Automatische Größenänderung der Zeile

Auto Resize Columns Beispiel

Verwenden Sie die Methode "AutoSizeColumn", um die Breite der Spalte zu ändern(s) basierend auf der Länge des Inhalts.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-columns.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply auto resize on column A
workSheet.AutoSizeColumn(0);

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

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Apply auto resize on column A
workSheet.AutoSizeColumn(0)

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

Demonstration

Auto Resize Column

Tipps
Alle Zeilen- und Spaltenindexpositionen folgen einer Null-basierten Indizierung.


Erweiterte automatische Größenanpassung von Zeilen Beispiel

Eine weitere Überladung der Methode "AutoSizeRow" nimmt einen zweiten Parameter als Boolean-Wert. Bei der Einstellung true wird auch die Höhe der zusammengeführten Zellen berücksichtigt, indem die Höhe des Wertes der linken oberen Zelle im Zusammenführungsbereich genommen und durch die Anzahl der Zeilen im zusammengeführten Bereich geteilt wird. Diese Bedingung gilt, wenn der Inhalt der zusammengeführten Zelle die größte Höhe im Verhältnis zu den übrigen Zeilen im zusammengeführten Bereich hat.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply auto resize to rows individually
workSheet.AutoSizeRow(0, true);
workSheet.AutoSizeRow(1, true);
workSheet.AutoSizeRow(2, true);

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

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Apply auto resize to rows individually
workSheet.AutoSizeRow(0, True)
workSheet.AutoSizeRow(1, True)
workSheet.AutoSizeRow(2, True)

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

Beispiel

Angenommen, der Inhalt hat eine Höhe von 192 Pixel und befindet sich in einem zusammengefassten Bereich, der sich über 3 Zeilen erstreckt. Wenn die automatische Größenanpassung auf eine dieser Zeilen angewendet wird, teilt der Algorithmus die Höhe des Inhalts von 192 px durch 3, was eine Höhe von 64 px für jede Zeile ergibt. Denken Sie daran, dass die Methode "AutoSizeRow" auf jede Zeile einzeln angewendet werden muss.

Advance Auto Resize Row

Was passiert, wenn der Wert auf false gesetzt wird?

Wenn der Wert auf "false" gesetzt ist, passt die Methode "AutoSizeRow" die Zeilenhöhe auf der Grundlage des Inhalts der Zelle mit der größten Höhe an. In Microsoft Excel wird beim Zusammenführen eines Zellbereichs nur der Wert der oberen linken Zelle beibehalten und der Rest wird gelöscht. Bei IronXL hingegen wird der Zusammenführen wird durchgeführt, ohne dass die Werte der anderen Zellen in der zusammengeführten Region gelöscht werden.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-rows-false.cs
using IronXL;

workSheet.Merge("A1:A3");

workSheet.AutoSizeRow(0, false);
workSheet.AutoSizeRow(1, false);
workSheet.AutoSizeRow(2, false);
Imports IronXL

workSheet.Merge("A1:A3")

workSheet.AutoSizeRow(0, False)
workSheet.AutoSizeRow(1, False)
workSheet.AutoSizeRow(2, False)
VB   C#
Advance Auto Resize Row

Zu Demonstrationszwecken habe ich die Zeilenhöhe manuell angepasst, anstatt die Excel funktion zur automatischen Anpassung der Zeilenhöhe. Dies geschah, um das Hinzufügen von auffälligen oberen und unteren Polstern zu vermeiden.

Wenn der Parameter useMergedCells auf false gesetzt ist, wird die Höhe der zusammengeführten Zellen nicht berücksichtigt. Daher gibt es keine Höhenänderungen, und die Höhe jeder Zeile wird ausschließlich auf der Grundlage ihres Inhalts berechnet.

Erweiterte automatische Größenanpassung von Spalten Beispiel

Ähnlich wie bei AutoSizeRow können Sie auch bei der Größenänderung von Spalten die Breite der zusammengeführten Zellen berücksichtigen. Wenn diese Option auf true gesetzt ist, wird die Breite der zusammengeführten Zellen berücksichtigt. Wenn die zusammengeführte Zelle den längsten Inhalt hat, entspricht die Breite der geänderten Spalte der Breite der zusammengeführten Zelle geteilt durch die Anzahl der Spalten im zusammengeführten Bereich.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-columns.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Apply auto resize to columns individually
workSheet.AutoSizeColumn(0, true);
workSheet.AutoSizeColumn(1, true);
workSheet.AutoSizeColumn(2, true);

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

' Load existing spreadsheet
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Apply auto resize to columns individually
workSheet.AutoSizeColumn(0, True)
workSheet.AutoSizeColumn(1, True)
workSheet.AutoSizeColumn(2, True)

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

Beispiel

Wenn der Inhalt beispielsweise eine Breite von 117 Pixel hat und sich in einem zusammengefassten Bereich befindet, der sich über 2 Spalten erstreckt, führt die Anwendung der automatischen Größenanpassung auf eine dieser Spalten zu einer Breite von 59 Pixel für jede Spalte. Die Methode "AutoSizeColumn" muss auf jede Spalte einzeln angewendet werden.

Advance Auto Resize-Spalte

Was passiert, wenn der Wert auf false gesetzt wird?

Wenn der Wert auf false gesetzt ist, passt die Methode "AutoSizeColumn" die Breite auf der Grundlage des Inhalts der Zelle mit der größten Breite an. Wenn in Microsoft Excel ein Bereich von Zellen zusammengeführt wird, bleibt nur der obere linke Wert erhalten und der Rest wird gelöscht. Das IronXL Zusammenführen methode löscht NICHT den Wert anderer Zellen in der zusammengeführten Region.

:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-advance-columns-false.cs
workSheet.Merge("A1:B1");

workSheet.AutoSizeColumn(0, false);
workSheet.AutoSizeColumn(1, false);
workSheet.Merge("A1:B1")

workSheet.AutoSizeColumn(0, False)
workSheet.AutoSizeColumn(1, False)
VB   C#
Advance Auto Resize-Spalte

Die Breite der zusammengeführten Zellen wurde nicht priorisiert, was dazu führte, dass sich die Breite nicht änderte, da die Breite jeder Spalte auf der Grundlage ihrer Inhaltsbreite berechnet wurde.

Die Unterschiede zwischen Excel und IronXL Auto Resize

Zeilen

Die Excel-Funktion für die automatische Anpassung der Zeilenhöhe fügt der Zelle oben und unten eine deutliche Auffüllung hinzu.

Vergleich zwischen Excel und IronXL Aute Resize Row

Rubriken

Die Excel-Funktion für die automatische Anpassung der Spaltenbreite fügt der Zelle ebenfalls eine linke und rechte Füllung hinzu, die jedoch weniger auffällig ist.

Vergleich zwischen Excel und IronXL Aute Resize Column

Manuelle Größenänderung von Höhe und Breite Beispiel

Sie können sich nicht nur auf die Methoden "AutoSizeRow" und "AutoSizeColumn" verlassen, um die Breite und Höhe des Inhalts zu berechnen und anzupassen, sondern Sie haben auch die Möglichkeit, die Breite und Höhe der Spalten und Zeilen manuell an Ihre spezifischen Anforderungen anzupassen. So können Sie sie auf einen bestimmten Wert einstellen, der Ihren Bedürfnissen entspricht.

  • Anpassen der Höhe: Setzen Sie die Eigenschaft Höhe von RangeRow.
  • Anpassen der Breite: Setzen Sie die Eigenschaft Width der RangeColumn.
:path=/static-assets/excel/content-code-examples/how-to/autosize-rows-columns-manual.cs
using IronXL;

// Load existing spreadsheet
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

RangeRow row = workSheet.GetRow(0);
row.Height = 10; // Set height

RangeColumn col = workSheet.GetColumn(0);
col.Width = 10; // Set width

workBook.SaveAs("manualHeightAndWidth.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Höhen- und Breiteneinheiten in Excel

Die Maßeinheiten für Höhe und Breite in Excel unterscheiden sich voneinander. Die Höhe wird in 1/20 eines Punktes gemessen, während die Breite anhand der Anzahl der "0" bestimmt wird, die in eine Zelle passen, wenn die Schriftart "Normal" verwendet wird.

Um die Umrechnung der Einheiten zu vereinfachen, geben wir den Wert in IronXL an, der den Anzeigepixeln in Microsoft Excel entspricht. Es ist wichtig zu wissen, dass ein Pixel keinen physischen Punkt auf dem Bildschirm darstellt; sie ist vielmehr als 1/96 Zoll definiert, unabhängig von der tatsächlichen Auflösung des Bildschirms. Excel selbst ist so konzipiert, dass es auflösungsunabhängig ist und sich nicht auf physische Pixel stützt.

Um eine Beziehung zwischen den Höhen- und Breitenmaßen von IronXL und Excel herzustellen, können Sie die folgenden Näherungswerte verwenden:

  • Höhe: RangeRow.Height = 10 ergibt eine ungefähre Höhe von 1 Pixel.
  • Breite: RangeColumn.Width = 23.255 entspricht 1 Pixel.
Chaknith related to Höhen- und Breiteneinheiten in Excel

Chaknith Bin

Software-Ingenieur

Chaknith ist der Sherlock Holmes der Entwickler. Zum ersten Mal kam ihm der Gedanke, dass er eine Zukunft in der Softwareentwicklung haben könnte, als er zum Spaß an Code Challenges teilnahm. Sein Schwerpunkt liegt auf IronXL und IronBarcode, aber er ist stolz darauf, Kunden mit jedem Produkt zu helfen. Chaknith nutzt sein Wissen aus direkten Gesprächen mit Kunden, um die Produkte selbst weiter zu verbessern. Sein anekdotisches Feedback geht über Jira-Tickets hinaus und unterstützt die Produktentwicklung, die Dokumentation und das Marketing, um das Gesamterlebnis der Kunden zu verbessern.Wenn er nicht im Büro ist, lernt er über maschinelles Lernen, programmiert und wandert.