libxlsxwriter for Clarion
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libxlsxwriter for Clarion
Есть интересная особенность в работе библиотеки, а может быть и обёртки …
Задача: вывести в строке текст с переносом (Wrap = True), но при этом установить фиксированную высоту строки.
Всё работает, и можно установить любую высоту строки .... кроме значения 15 (XLSX:DEF_ROW_HEIGHT).
При принудительной установке высоты строки = 15, её реальная высота будет всегда устанавливаться по тексту.
Задача: вывести в строке текст с переносом (Wrap = True), но при этом установить фиксированную высоту строки.
Всё работает, и можно установить любую высоту строки .... кроме значения 15 (XLSX:DEF_ROW_HEIGHT).
При принудительной установке высоты строки = 15, её реальная высота будет всегда устанавливаться по тексту.
За теми кто отстал - не возвращаться. (С) Кодекс
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libxlsxwriter for Clarion
Через Microsoft Excel конечно можно, но это ведь уже пост-обработка XLSX, как и WRAP объединённых ячеек …
Т.е. совсем другая история. Это не проблема, просто забавно. Я сделал вот так:
Код: Выделить всё
ErrorCode = MyXLSX.SetRow(Loc:Row,Choose(MyRowHeight = XLSX:DEF_ROW_HEIGHT,15.1,MyRowHeight))
Самое интересное, что в этом случае выставляется высота строки: 15.00 !
За теми кто отстал - не возвращаться. (С) Кодекс
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1379
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
libxlsxwriter for Clarion
Обновил версию в шапке. Собрано на актуальном релизе библиотеки. Добавлен метод выравнивания подписей осей графиков
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1379
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
libxlsxwriter for Clarion
Добавил chartsheets (не знаю как переводится). Шапку пока не обновлял, так как пока не все методы доступны в библиотеке
Внимание: изменены некоторые методы и свойства класса, придется кое-что подправить
Внимание: изменены некоторые методы и свойства класса, придется кое-что подправить
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1379
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
libxlsxwriter for Clarion
Обнаружил проблему, при которой мог быть крэш при освобождении памяти класса. Никто не сталкивался? Странно )) Версии в шапке, кстати, тоже касается
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libxlsxwriter for Clarion
Таки нормально ! Дело в том, что схема с распределением памяти, предлагаемая в авторском примере:
Код: Выделить всё
xlsx &xlsxwriter
...
Code
xlsx &=NEW(xlsxwriter)
xlsx.NewWorkbook('TheFile.xlsx')
...
If xlsx.CloseWorkbook() ...
dispose(xlsx)
Код: Выделить всё
MyXLSX xlsxwriter
…
Code
xlsx.NewWorkbook('TheFile.xlsx')
...
If xlsx.CloseWorkbook() ...
За теми кто отстал - не возвращаться. (С) Кодекс
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1379
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
libxlsxwriter for Clarion
Так память все равно освобождается рано или поздно, на закрытие процедуры или приложения. Другое дело, что у меня крэш проявлялся только после работы с графиками (возможно, это пока мало кто использует, я стараюсь по максимуму и уже встроил в проект chartsheets)
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1379
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
- Контактная информация:
libxlsxwriter for Clarion
Обновил версию в шапке, собрано на 0.8.3
https://libxlsxwriter.github.io/workshe ... 8999db5afa
Вот это нужно кому-нибудь? Пока не делал
https://libxlsxwriter.github.io/workshe ... 8999db5afa
Вот это нужно кому-нибудь? Пока не делал
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libxlsxwriter for Clarion
Я заранее извиняюсь, за неформализованный вопрос, просто не могу разобраться в чём проблема …
Экспорт простых сумм. Что бы было красиво - задаём маску:
При некоторых сочетаниях с прорисовкой рамки ячейки (не могу пока чётко отловить) ВАРИАНТ 1 выбивает
маски всех (!!!) чисел не только на листе, но и в книге. От региональных настроек не зависит. Какая-то мистика.
То ли вариант маски 1 в принципе неправильный, но я брал его из TabogaExcel …
Вариант 2 вроде бы работает … но как-то хочется понять в чём проблема.
Экспорт простых сумм. Что бы было красиво - задаём маску:
Код: Выделить всё
MyXLSX.ClearFormat()
MyXLSX.Format.Align = XLSX:ALIGN_RIGHT
MyXLSX.Format.Picture = ''
!MyXLSX.Format.ExcelMask = '#,##0.00;-#,##0.00' ! ВАРИАНТ 1
MyXLSX.Format.ExcelMask = '# ##0.00;-# ##0.00' ! ВАРИАНТ 2
MyXLSX.SetFormat()
MyXLSX.Format.WriteNumber( ....
маски всех (!!!) чисел не только на листе, но и в книге. От региональных настроек не зависит. Какая-то мистика.
То ли вариант маски 1 в принципе неправильный, но я брал его из TabogaExcel …
Вариант 2 вроде бы работает … но как-то хочется понять в чём проблема.
За теми кто отстал - не возвращаться. (С) Кодекс
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libxlsxwriter for Clarion
Ээээ … а дело-то интересней оказалось.
Маска "Вариант 1" козлит только на компьютерах, где на прошлой неделе накатилось обновление Windows 10 1809 …
Также поехали форматы масок с процентами '#0%;-#0%' …
И это независимо от программы Microsoft Excel / OpenOffice Calc
Маска "Вариант 1" козлит только на компьютерах, где на прошлой неделе накатилось обновление Windows 10 1809 …
Также поехали форматы масок с процентами '#0%;-#0%' …
И это независимо от программы Microsoft Excel / OpenOffice Calc
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
libxlsxwriter for Clarion
Вроде MS отозвала обновление. Кто-то у вас из клиентов сильно продвинутый?Игорь Столяров писал(а): ↑09 Октябрь 2018, 11:08 Маска "Вариант 1" козлит только на компьютерах, где на прошлой неделе накатилось обновление Windows 10 1809 …
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libxlsxwriter for Clarion
Насчёт отозвала - не знаю. Я проблему вижу у себя. И Win10 1809 сама установилась, штатно ...
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
libxlsxwriter for Clarion
Надо бы подстраховаться - http://www.cnews.ru/news/top/2018-10-08 ... yudalennye. В конторе что-то не то происходит.
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7447
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 16 раз
- Поблагодарили: 51 раз
libxlsxwriter for Clarion
Проблему локализовал, маски чисел вроде бы не при чём, хотя осадок непоняток с их форматами остался.
Замена маски процентов решает вопрос:
Замена маски процентов решает вопрос:
Код: Выделить всё
!MyXLSX.Format.ExcelMask = '#0%;-#0%' ! Начала козлить в Win10 1809
MyXLSX.Format.ExcelMask = '0%;-0%' ! Работает штатно, проблем нет
MyXLSX.SetFormat()
За теми кто отстал - не возвращаться. (С) Кодекс