19 Stimmen

Wie können Spalten in Excel-Dokumenten, die mit NPOI erstellt wurden, auf "automatische Größe" gesetzt werden?

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?

35voto

Yellowfog Punkte 2253

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.

5voto

user2338169 Punkte 51

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");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X