NPOI ist eine .NET-Portierung des Java-POI-Projekts, mit dem man Microsoft Excel-Dokumente (sowie andere Office-Formate) lesen und schreiben kann. Mit NPOI 1.2.2 wurde die Unterstützung für Spalten mit automatischer Größenanpassung eingeführt, wobei die Spalte auf die Breite des breitesten Zelleneintrags in der Spalte eingestellt wird. Es gibt jedoch viele Berichte, dass dies nicht funktioniert. Ist es also möglich?
Antworten
Zu viele Anzeigen?Ich habe diese Frage nur gepostet, um sie zu beantworten, damit sie dokumentiert werden kann. Es ist Es ist möglich, Spalten mit NPOI automatisch zu skalieren, aber Sie müssen alle Daten in Spalten und nicht in Zeilen hinzufügen. Sobald alle Zellen zu einer Spalte @ columnIndex hinzugefügt wurden, rufen Sie
mySheet.AutoSizeColumn(columnIndex)
und gehen Sie zur nächsten Spalte. Ich habe keine andere Möglichkeit gefunden, diese Funktion zu nutzen.
Wie bereits von Yellowfog erwähnt, funktioniert Folgendes
mySheet.AutoSizeColumn(columnIndex)
Allerdings gibt es einige Unstimmigkeiten in den Beiträgen. Es scheint sich um eine Methode zu handeln, die erst funktioniert, nachdem Sie die Eingabe von Daten, Stilen usw. abgeschlossen haben. Damit dies funktioniert
ISheet mySheet = hssfworkbook.CreateSheet("sheet1");
IRow row = mySheet.CreateRow(0);
ICell cell = row.CreateCell(0);
cell.SetCellValue("foo");
mySheet.AutoSizeColumn(0);
aber das Folgende hat keine Auswirkungen (weil es keine Informationen für die automatische Größenbestimmung hat)
ISheet mySheet = hssfworkbook.CreateSheet("sheet1");
mySheet.AutoSizeColumn(0);
IRow row = mySheet.CreateRow(0);
ICell cell = row.CreateCell(0);
cell.SetCellValue("foo");