Преобразовать ширину столбца OpenXML в дюймы - PullRequest
0 голосов
/ 04 декабря 2018

Я использую библиотеку PhpSpreadsheet для генерации XLSX.Когда я устанавливаю ширину столбца, я использую эту формулу:

// Maximum Digit Width - default 7 (Calibri, 11)
// 4 (padding) + 1 (gridlines)
// FullDoc: https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2010/cc802410(v=office.14)
width = Truncate([{Number of Characters} * {Maximum Digit Width} + {5 pixel padding}]/{Maximum Digit Width}*256)/256

Например:

Column A: 20 (character unit) = 20.7109375 (full width) = 145 px
Column B: 40 = 40.7109375 = 285 px

Все работает правильно, но у меня есть другие вопросы.

Когда я открываю сгенерированный файл XLSX в LibreOffice Calc, ширина столбца отображается в inch !

20.7109375 = 1.60"
40.7109375 = 3.14"

В файле .xlsx: sheet1.xml

1-вопрос: Как LibraOffice преобразовывает значение ширины столбца в дюймы?

При открытии на MsExcel:

В обычном режиме:

enter image description here

enter image description here

A и B одинаковые значения примера.

Но вРежим макета страницы:

enter image description here

enter image description here

Столбец A: 1,63 "(156 пикселей)

Столбец B: 3,19 "(306 пикселей)

2 вопроса: Почему ширина пикселя различна для каждого режима?(Столбец A: 145px <> 156px)

3 вопроса: Почему размер дюйма отличается для каждого приложения (Excel, LibreOffice)?(Столбец B: 3.14 "<> 3.19")

Как правило, я хочу создать лист из N столбцов, поэтому сумма ширины всех столбцов равна размеру бумаги (без заполнения).

Извините, мой английский!Я использую Google!

...