Как высчитать ширину и высоту ячейки excel в пикселях?
Ширина колонки задаётся в символах, при этом размер в пикселях завивисит от выбранного шрифта.
Как получить значение ширины и высоты ячейки в пикселях?
Использую openpyxl, python
_____________________________
Нашёл такой расчёт: pixels = points * DPI / 72 -> шрифт 12pt * 96dpi / 72 = 16px.
Т.е., если ячейке задать ширину 1, то в пикселях должно быть 16px, а по факту 13px.
Как я понял, ширина задаётся в кол-ве символов, но если задать ширину 2, то в пикселях будет не 26, а 21px.
Выходит, что один символ занимает 8пикс.
Дѣаволъ, работаю с библиотекой openpyxl (python). Надо вписать картиинку в диапазон ячеек. Для этого нужно высчитать размеры ячеек в пикселях.
Всё, что нашёл, это если брать за базовый шрифт Calibri 11pt, то размер ячеек рассчитывается так:
def _col_px(width):
max_digit_width = 7 # For Calabri 11.
padding = 5
if width is not None:
if width < 1:
pixels = int(width * (max_digit_width + padding) + 0.5)
else:
pixels = int(width * max_digit_width + 0.5) + padding
else:
pixels = self.default_col_pixels
return pixels
Не уверен, что идёт привязка к DPI. Например в разных версиях значения разные у объекта DialogSheets.
Стоит поискать у объектов свойство ScaleMode. 1 = vbTwips, 3 = vbPixels.
Экспериментальным путём выяснено, что .Width = .Height * 1.2