AutoSizeColumn работает для всех столбцов, кроме столбцов, содержащих значения даты и времени.

Я создаю файл Excel, используя NPOI.

Я объявляю лист следующим образом:

        var workbook = new XSSFWorkbook();
        var sheet = workbook.CreateSheet(title);

Эксель заполняется данными. Соответствующая часть - это когда я устанавливаю значение даты и времени:

                        if (data is DateTime)
                        {
                            cell.CellStyle = GetDateTimeStyle(workbook, true, GetCustomFormatForColumn(column));
                            cell.SetCellValue(Convert.ToDateTime(data));
                        }

где ячейка ICell cell = row.CreateCell(column);, а метод GetDateTimeStyle:

    private ICellStyle GetDateTimeStyle(XSSFWorkbook wb, bool useBorder, string customFormat)
    {
        if (!_styles.TryGetValue("DATETIME", out ICellStyle style))
        {
            style = wb.CreateCellStyle();
            style.SetFont(GetItemFont(wb));

            style.Alignment = HorizontalAlignment.Center;

            if (useBorder)
                SetBorder(style);

            if (!String.IsNullOrEmpty(customFormat))
                style.DataFormat = wb.CreateDataFormat().GetFormat(customFormat);
            else
                style.DataFormat = wb.CreateDataFormat().GetFormat("dd/MM/yyyy HH:mm:ss");

            _styles.Add("DATETIME", style);
        }

        return style;
    }

После заполнения всех ячеек я запускаю этот цикл for:

        column = 0;
        foreach (string header in columnNames)
            sheet.AutoSizeColumn(column++);

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

Ячейки, содержащие значения даты и времени, расширяются по ширине, но остается несколько пикселей, которые необходимо расширить, чтобы отображать дату и время полностью, а не только #########.

Есть ли способ решить эту проблему?

С уважением Хайме


person jstuardo    schedule 18.05.2020    source источник
comment
вы посмотрели на stackoverflow.com/questions/6055519/.   -  person Abdullah Bahattab    schedule 18.05.2020
comment
@AbdullahBahattab, вы прочитали весь мой вопрос?   -  person jstuardo    schedule 18.05.2020
comment
Небольшой выстрел в темноте, но пробовали ли вы AutoFit вместо AutoSize? Я думаю, что он обрабатывает перенос слов и усечение по-разному, но я не проверял.   -  person Automate This    schedule 18.05.2020
comment
@jstuardo да, я читал это раньше, я ищу решение, извини, если я запутался. Я пытался помочь.   -  person Abdullah Bahattab    schedule 18.05.2020
comment
@PortlandRunner Я не нашел ни метода, ни свойства AutoFit. Где это находится?   -  person jstuardo    schedule 18.05.2020
comment
@AbdullahBahattab без проблем   -  person jstuardo    schedule 18.05.2020
comment
Это может быть не в NPOI... myRng.EntireColumn.AutoFit(); Вот другие примеры в шаге 4.   -  person Automate This    schedule 18.05.2020