libxlsxwriter for Clarion
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1412
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Создание файлов Excel (xlsx) без использования Excel на основе проекта libxlsxwriter (https://libxlsxwriter.github.io). Можно создавать файлы, листы в них, писать данные (текст (в т.ч. русский), число, дата, время), ставить форматирование (цвет, рамки, шрифт, выравнивание, размер), объединять ячейки, фиксировать и скрывать строки и колонки, вставлять изображения, рисовать графики (диаграммы), устанавливать настройки печати и свойства документа.
Для конвертирования "картинок" форматов используется библиотека Tpicture от Taboga, у кого этого класса нет замените на что-то свое
Для конвертирования "картинок" форматов используется библиотека Tpicture от Taboga, у кого этого класса нет замените на что-то свое
- Вложения
-
- libxlsxwriter.zip
- Версия 1.5 от 30.12.2021 на основе библиотеки 1.1.4
- (276.26 КБ) 1033 скачивания
Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8070
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 97 раз
libxlsxwriter for Clarion
Согласен, это вопрос культуры кода. У Вас он решен лучше.

Для меня использование типа REAL - скорее экзотика, и только в тех местах где требуются расчёты без потери точности.
Но ведь есть и те, кто особо не парясь, все цифры в БД и расчёты делают на REAL ... а это значит, что потенциально передача
любого поля REAL в метод WriteNumber() может приводить к ошибке.
Make Clarion Great Again ! 
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1412
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
В библиотеку 24 разные переменные типа REAL передаются, если что. Многовато вам оборачивать придется. Культурой кода кмк попроще было быИгорь Столяров писал(а): 27 Февраль 2018, 22:22 а это значит, что потенциально передача
любого поля REAL в метод WriteNumber() может приводить к ошибке.
libxlsxwriter for Clarion
Честное слово, но не врублюсь никак - при чем тут libxlsxwriter и это деление на 0? Такая ситуация может возникнуть в любом месте программы , где встретится деление.
C10, Win10x64
- Игорь Столяров
- Ветеран движения
- Сообщения: 8070
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 97 раз
libxlsxwriter for Clarion
Ну не всё так плохо ...

Ну и конечно, теперь будем обращать на это внимание и проверять все значения в REAL для отчётов получаемых делением.
Последний раз редактировалось Игорь Столяров 27 Февраль 2018, 22:56, всего редактировалось 1 раз.
Make Clarion Great Again ! 
- Игорь Столяров
- Ветеран движения
- Сообщения: 8070
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 97 раз
libxlsxwriter for Clarion
Да, ситуация может быть везде. Но перекошенный отчёт после деления на ноль Вы получите только в XLSXWriter.vic7tar писал(а): 27 Февраль 2018, 22:43Такая ситуация может возникнуть в любом месте программы , где встретится деление.

Make Clarion Great Again ! 
- Игорь Столяров
- Ветеран движения
- Сообщения: 8070
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 97 раз
libxlsxwriter for Clarion
То же что и в Report, EasyOpenOffice и т.д. - просто ноль ...
Make Clarion Great Again ! 
libxlsxwriter for Clarion
Ну опять ничего не понимаю. Т.е. при передаче значения 0/0 желаемый результат должен быть 0 без всяких ругательств, хотя это ошибка. По-моему правильнее увидеть в ячейке -nan(ind) и делать соответствующие выводы.
C10, Win10x64
- Игорь Столяров
- Ветеран движения
- Сообщения: 8070
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 97 раз
libxlsxwriter for Clarion
Самое интересное, что Microsoft Excel именно это и отображает, но ещё почему-то возникает ошибка при открытии XLSX.

Возможно, работа с неопределённостями управляется каким-то флагом XLSX, аналогично отображению нулей в ячейках ...
Или LibXLSXWriter как-то криво пишет эту неопределённость в XLSX файл ...
Хорошо бы задать этот вопрос автору библиотеки, но там надо продемонстрировать проблему на сях, а это не ко мне ...

Make Clarion Great Again ! 
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1412
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Да все намного проще - в самом Excel отсутствует возможность записать неопределенность в числовое поле, вот он и офигевает, откуда это там взялось. Автор то в курсе и прямо говорит, что писать так не надо. Почему не встроил проверку - другой вопрос, но раз он не встроил, то и я не буду )
- Игорь Столяров
- Ветеран движения
- Сообщения: 8070
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 97 раз
libxlsxwriter for Clarion
На самом деле таких вопросов, после которых получается bad XLSX, в LibXLSXWriter много.
Например пересечение объединений ячеек на листе.
Полностью согласен, что проще и эффективней мы все эти вопросы решим сами на прикладном уровне.
Здесь главное знать об этих особенностях !

Make Clarion Great Again ! 
- Игорь Столяров
- Ветеран движения
- Сообщения: 8070
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 97 раз
libxlsxwriter for Clarion
У меня случайно отвалился модуль TPICTURE, и как-то сразу почувствовалось, что использование установки форматов
картинок ощутимо замедляет экспорт. Особенно на разношёрстных данных, где постоянно меняется картинка.
Наверно, без особой необходимости, лучше всегда устанавливать форматы ячеек напрямую через ExcelMask !
картинок ощутимо замедляет экспорт. Особенно на разношёрстных данных, где постоянно меняется картинка.

Наверно, без особой необходимости, лучше всегда устанавливать форматы ячеек напрямую через ExcelMask !
Make Clarion Great Again ! 
- Игорь Столяров
- Ветеран движения
- Сообщения: 8070
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 97 раз
libxlsxwriter for Clarion
Добрый день !
Помогите пожалуйста разобраться с происходящим ...
Хочу вывести текст с переносом строки. Например:
Получаю вот такое:
Причём, что интересно, вот этот код "_x000D_" действительно как строка записан в XML файле.
Если создать XLSX c таким же текстом через Microsoft Excel - то в XML записаны именно коды <13,10>
и никаких проблем при открытии такого XLSX в Apache Calc не возникает ....
Кто подменяет код переноса "<13,10>" на "_x000D_" и зачем ? Заранее спасибо !
Помогите пожалуйста разобраться с происходящим ...

Код: Выделить всё
err#=xlsx.WriteString(1,2,'12345<13,10>67890')
Причём, что интересно, вот этот код "_x000D_" действительно как строка записан в XML файле.
Если создать XLSX c таким же текстом через Microsoft Excel - то в XML записаны именно коды <13,10>
и никаких проблем при открытии такого XLSX в Apache Calc не возникает ....
Кто подменяет код переноса "<13,10>" на "_x000D_" и зачем ? Заранее спасибо !
Make Clarion Great Again ! 
-
- ✯ Ветеран ✯
- Сообщения: 5169
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
libxlsxwriter for Clarion
Игорь, а ничего не путаешь? В классическом xml символ '<13>' - '<br />'. У SV в классах есть преобразования специфических символов. Я сделал себе простую функцию преобразования кларионовской строки в xml строку на их основе.
We are hard at work… for you. 

- Игорь Столяров
- Ветеран движения
- Сообщения: 8070
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 29 раз
- Поблагодарили: 97 раз
libxlsxwriter for Clarion
А давайте, не будем спорить о теории конг-фу и рассмотрим конкретный пример. 
Вот XML файл из XLSX с моим примером, который создан в Microsoft Excel.
Ключевые места обвёл красненьким.
Этот XLSX прекрасно открывается везде и нет никаких проблем с ячейками в которых перенос строк.
Через XLSXWriter такой файл сейчас создать низя, в чём собственно и вопрос ...

Вот XML файл из XLSX с моим примером, который создан в Microsoft Excel.
Ключевые места обвёл красненьким.
Этот XLSX прекрасно открывается везде и нет никаких проблем с ячейками в которых перенос строк.
Через XLSXWriter такой файл сейчас создать низя, в чём собственно и вопрос ...

Make Clarion Great Again ! 