Подтвердить что ты не робот

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

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

4b9b3361

Ответ 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");