NPOI - это порт .NET проекта Java POI, который позволяет читать и писать документы Microsoft Excel (а также другие форматы Office). В NPOI 1.2.2 была введена поддержка для столбцов "autosizing", в результате чего столбец устанавливается на ширину самой широкой записи ячейки в столбце. Однако есть много сообщений, что это не работает. Так возможно?
Как настроить столбцы на "авторазмер" в документах Excel, созданных с помощью NPOI?
Ответ 1
Я разместил это, чтобы ответить на него, чтобы предоставить запись. Можно сделать столбцы авторизованными с помощью NPOI, но вы должны добавить все данные в столбцы, а не в строки. Когда все ячейки добавлены в столбец @columnIndex, вы вызываете
mySheet.AutoSizeColumn(columnIndex)
и перейдите к следующему столбцу. Я не нашел другого способа заставить эту функциональность работать.
Ответ 2
Как уже указано Yellowfog, будет работать
mySheet.AutoSizeColumn(columnIndex)
Однако в сообщениях появляется некоторая неточность. Это метод, который работает только после того, как вы завершили ввод данных, стилей и т.д. Чтобы это работало
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");