Значение параметра setColumnWidth для POI — ширина символа?

#java #excel #width #apache-poi

#java #excel #ширина #apache-poi

Вопрос:

public void setColumnWidth(int columnIndex,
int width)

Установите ширину (в единицах, составляющих 1/256-ю ширины символа)

1/256-я ширина КАКОГО СИМВОЛА? Разные символы имеют разную ширину. Чего мне здесь не хватает?

Ответ №1:

Если вы видите Javadoc метода HSSFSheet.setColumnWidth(), он содержит объяснение ширины символа. Вставка приведенного ниже отрывка:

Ширина символа определяется как максимальная ширина цифр чисел 0, 1, 2, … 9, отображаемых с использованием шрифта по умолчанию (первый шрифт в рабочей книге). Если вы не используете очень специальный шрифт, символ по умолчанию равен ‘0’ (ноль), это верно для Arial (шрифт шрифта по умолчанию в HSSF) и Calibri (шрифт по умолчанию в XSSF)

Обратитесь к ссылке: http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFSheet.html#setColumnWidth (int, int)

Комментарии:

1. Хорошо, спасибо! В том же источнике, который я процитировал, говорится: «Используя шрифт Calibri в качестве примера, максимальная ширина цифры 11-точечного размера шрифта составляет 7 пикселей». Однако класс FontMetrics возвращает значение 6 для ширины 0, используя Calibri, 11pt . Есть идеи относительно того, что вызывает это несоответствие?