-
Notifications
You must be signed in to change notification settings - Fork 3
Export to Excel
Dmitriy Popov edited this page Dec 25, 2020
·
10 revisions
Связанная задача — https://github.com/dmitry-weirdo/kgparser/issues/20
❗ Проблемы относятся главным образом в MS Excel for Windows. Даже в MS Excel for Mac они не проявляются, а тем более в Google Sheets.
- Длина названия листа ограничена в 31 символ. Если будет передана более длинная строка, то она будет обрезана до 31 символа.
- В связи с этим лист для «Топ-500 по числу используемых словарей» называется покороче: «Топ-%d по числу словарей»
- См. https://stackoverflow.com/a/3681908/8534088
- См. https://excel.uservoice.com/forums/304921-excel-for-windows-desktop-application/suggestions/10770162-allow-31-characters-in-a-sheet-name
- Ссылки, содержащие символ
#
, в виндовом Excel не работают.- Это создаёт проблему при вставке ссылки на профиль пользователя вида
- Если заэскпейпить
#
, как%23
, то ссылка из Excel будет работать, но на Клавогонках ссылки вида https://klavogonki.ru/u/%23/242585 не работают. - Использован Workaround — ссылка на профиль, не содержащая
#
, вида https://klavogonki.ru/profile/242585/. - См. https://social.msdn.microsoft.com/Forums/sqlserver/en-US/c2860611-ef3d-4880-b168-253c1d643443/hyperlink-containing-in-excel?forum=exceldev
- См. https://stackoverflow.com/questions/25070176/hyperlink-changes-from-to-20-20-when-clicked-in-excel
Нельзя назначать свой стиль для любого числа ячеек. POI выбрасывает исключение:
Caused by: java.lang.IllegalStateException: The maximum number of Cell Styles was exceeded. You can define up to 64000 style in a .xlsx Workbook
На самом деле, это ограничение Excel — см. https://docs.microsoft.com/en-us/office/troubleshoot/excel/too-many-different-cell-formats-in-excel
Решение:
- предсоздать все необходимые стили, в каждой ячейке доставить их из мэпы в контексте, а не создавать заново для каждой ячейки — реализовано в
ExcelStylesMap
. - нужны стили для чётных и нечётных рядов (разные background color). — именно так, для всех стилей, кроме заголовков, существует две версии, различающиеся backgroundColor — для чётных и нечётных рядов.
- надеюсь, это заодно и снизит размер сгенерированного файла. — да, размер файла действительно уменьшается на несколко процентов.
Для снижения трафика скачка со страницы ведёт на zip-файлы, содержащие сгенерированные xlsx. Сжатие получается незначительным, размер файла уменьшается примерно меньше, чем на 9 процентов.