Как можно установить для столбцов значение "autosize" в документах Excel, созданных с помощью NPOI?

NPOI является .NET-портом проекта Java POI, который позволяет читать и писать документы Microsoft Excel (а также другие форматы Office). NPOI 1.2.2 внедрил поддержку "автозазирования" столбцов, в соответствии с которой столбец имеет ширину самой широкой ячейки в столбце. Однако есть много сообщений о том, что это не работает. Так это возможно?

2 ответов


я опубликовал это, чтобы ответить на него, чтобы предоставить запись. Это и можно сделать столбцы автоматически с помощью NPOI, но вы должны добавить все данные в столбцы, а не в строки. После того, как все ячейки были добавлены в столбец @ columnIndex, вы вызываете

mySheet.AutoSizeColumn(columnIndex)

и перейти к следующему столбцу. Я не нашел другого способа заставить эту функцию работать.


как уже указано Yellowfog следующее будет работать

mySheet.AutoSizeColumn(columnIndex)
некоторые abiguity появляется в постах. Кажется, это метод, который работает только после завершения ввода данных, стилей и т. д. Так что это будет работать
ISheet mySheet = hssfworkbook.CreateSheet("sheet1");
IRow row = mySheet.CreateRow(0);
ICell cell = row.CreateCell(0);
cell.SetCellValue("foo");
mySheet.AutoSizeColumn(0);

но следующее не будет иметь никакого эффекта (потому что у него нет информации для автоматического размера)

ISheet mySheet = hssfworkbook.CreateSheet("sheet1");
mySheet.AutoSizeColumn(0);
IRow row = mySheet.CreateRow(0);
ICell cell = row.CreateCell(0);
cell.SetCellValue("foo");