Automatische Größenanpassung von Zeilen und Spalten

Chaknith related to Automatische Größenanpassung von Zeilen und Spalten
Chaknith Bin
26. März 2023
Aktualisiert 10. Dezember 2024
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

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 Funktionalität, um Zeilen und Spalten automatisch zu skalieren. 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 automatisch die Höhe einer angegebenen Zeile(n) basierend auf deren Inhalt an.

: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")
$vbLabelText   $csharpLabel

Demonstration

Zeile automatisch anpassen

Auto Resize Columns Beispiel

Verwenden Sie die AutoSizeColumn-Methode, um die Breite der Spalte(n) basierend auf der Länge des Inhalts anzupassen.

: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")
$vbLabelText   $csharpLabel

Demonstration

Spalten automatisch anpassen

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


Erweiterte automatische Größenanpassung von Zeilen Beispiel

Eine weitere Überladung der AutoSizeRow-Methode nimmt einen zweiten Parameter als Boolean-Wert an. Wenn auf wahr gesetzt, wird die Höhe der zusammengeführten Zellen ebenfalls berücksichtigt, indem die Höhe des Wertes der linken oberen Zelle in der zusammengeführten Region genommen und durch die Anzahl der Zeilen in der zusammengeführten Region 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")
$vbLabelText   $csharpLabel

Beispiel

Angenommen, der Inhalt hat eine Höhe von 192 Pixeln und befindet sich in einem zusammengeführten Bereich, der 3 Zeilen umfasst. 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 zu einer Höhe von 64 px für jede Zeile führt. Denken Sie daran, dass die Methode AutoSizeRow auf jede Zeile einzeln angewendet werden muss.

Automatische Größenanpassung der Zeile

Was passiert, wenn der Wert auf false gesetzt wird?

Wenn der Wert auf false gesetzt wird, passt die AutoSizeRow-Methode die Zeilenhöhe basierend auf dem Inhalt der Zelle mit der größten Höhe an. In Microsoft Excel, wenn ein Zellbereich zusammengeführt wird, behält er nur den Wert der oberen linken Zelle bei und löscht den Rest. Mit IronXL jedoch wird die Zusammenführung durchgeführt, ohne die Werte der anderen Zellen im zusammengeführten Bereich zu löschen.

: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)
$vbLabelText   $csharpLabel
Erweiterte automatische Größenanpassung der Zeile

Zu Demonstrationszwecken habe ich die Zeilenhöhe manuell angepasst, anstatt die Excel-Funktion für automatische Zeilenhöhenanpassung zu verwenden. 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 AutoSizeRow können Sie auch die Größenänderung von Spalten so einstellen, dass sie die Breite von verbundenen Zellen berücksichtigt. Wenn auf true gesetzt, 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")
$vbLabelText   $csharpLabel

Beispiel

Zum Beispiel, wenn der Inhalt eine Breite von 117 Pixel hat und sich in einem zusammengeführten Bereich befindet, der sich über 2 Spalten erstreckt, wird das Anwenden der automatischen Größenanpassung auf eine dieser Spalten dazu führen, dass jede Spalte eine Breite von 59 Pixel hat. Die AutoSizeColumn-Methode muss auf jede Spalte einzeln angewendet werden.

Automatisches Anpassen der Spaltenbreite vornehmen

Was passiert, wenn der Wert auf false gesetzt wird?

Wenn der Wert auf false gesetzt ist, passt die AutoSizeColumn-Methode die Breite basierend auf dem Inhalt der Zelle mit der längsten Breite an. In Microsoft Excel, wenn ein Zellbereich zusammengeführt wird, behält er nur den Wert oben links bei und löscht den Rest. Die IronXL Merge-Methode löscht jedoch NICHT den Wert der anderen Zellen im zusammengeführten Bereich.

: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)
$vbLabelText   $csharpLabel
Erweiterte automatische Größenänderung der 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.

Excel und IronXL Zeilen automatisch anpassen Vergleich

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.

Excel und IronXL Auto Resize Spaltenvergleich

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

Neben der Verwendung der AutoSizeRow- und AutoSizeColumn-Methoden zur Berechnung und Anpassung der Breite und Höhe des Inhalts, haben Sie auch die Flexibilität, die Breite und Höhe von Spalten und Zeilen manuell so anzupassen, dass sie Ihren spezifischen Anforderungen entsprechen. So können Sie sie auf einen bestimmten Wert einstellen, der Ihren Bedürfnissen entspricht.

  • Passen Sie die Höhe an: Setzen Sie die Height-Eigenschaft der RangeRow.
  • Passen Sie die Breite an: Setzen Sie die Width-Eigenschaft 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
$vbLabelText   $csharpLabel

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
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.