libxlsxwriter for Clarion

Программы на Clarion, шаблоны, библиотеки и пр.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 27 Февраль 2018, 22:22

RaFaeL писал(а):
27 Февраль 2018, 22:10
И считаю, что это правильно
Согласен, это вопрос культуры кода. У Вас он решен лучше. :)
Для меня использование типа REAL - скорее экзотика, и только в тех местах где требуются расчёты без потери точности.
Но ведь есть и те, кто особо не парясь, все цифры в БД и расчёты делают на REAL ... а это значит, что потенциально передача
любого поля REAL в метод WriteNumber() может приводить к ошибке.
Вам помочь или не мешать ?

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 673
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL » 27 Февраль 2018, 22:32

Игорь Столяров писал(а):
27 Февраль 2018, 22:22
а это значит, что потенциально передача
любого поля REAL в метод WriteNumber() может приводить к ошибке.
В библиотеку 24 разные переменные типа REAL передаются, если что. Многовато вам оборачивать придется. Культурой кода кмк попроще было бы

Аватара пользователя
vic7tar
Бывалый
Сообщения: 74
Зарегистрирован: 09 Февраль 2017, 20:12

libxlsxwriter for Clarion

Сообщение vic7tar » 27 Февраль 2018, 22:43

Честное слово, но не врублюсь никак - при чем тут libxlsxwriter и это деление на 0? Такая ситуация может возникнуть в любом месте программы , где встретится деление.
C10, Win10x64

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 27 Февраль 2018, 22:45

RaFaeL писал(а):
27 Февраль 2018, 22:32
Многовато вам оборачивать придется.
Ну не всё так плохо ... ;) Диаграммы - это для любителей. Размеры - никогда не получаются делением.
Ну и конечно, теперь будем обращать на это внимание и проверять все значения в REAL для отчётов получаемых делением.
Последний раз редактировалось Игорь Столяров 27 Февраль 2018, 22:56, всего редактировалось 1 раз.
Вам помочь или не мешать ?

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 27 Февраль 2018, 22:48

vic7tar писал(а):
27 Февраль 2018, 22:43
Такая ситуация может возникнуть в любом месте программы , где встретится деление.
Да, ситуация может быть везде. Но перекошенный отчёт после деления на ноль Вы получите только в XLSXWriter. ;)
Вам помочь или не мешать ?

Аватара пользователя
vic7tar
Бывалый
Сообщения: 74
Зарегистрирован: 09 Февраль 2017, 20:12

libxlsxwriter for Clarion

Сообщение vic7tar » 27 Февраль 2018, 22:56

Ради интереса, а что там будет, если передать через OLE?
C10, Win10x64

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 27 Февраль 2018, 22:57

vic7tar писал(а):
27 Февраль 2018, 22:56
если передать через OLE?
То же что и в Report, EasyOpenOffice и т.д. - просто ноль ...
Вам помочь или не мешать ?

Аватара пользователя
vic7tar
Бывалый
Сообщения: 74
Зарегистрирован: 09 Февраль 2017, 20:12

libxlsxwriter for Clarion

Сообщение vic7tar » 27 Февраль 2018, 23:26

Ну опять ничего не понимаю. Т.е. при передаче значения 0/0 желаемый результат должен быть 0 без всяких ругательств, хотя это ошибка. По-моему правильнее увидеть в ячейке -nan(ind) и делать соответствующие выводы.
C10, Win10x64

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 28 Февраль 2018, 7:29

vic7tar писал(а):
27 Февраль 2018, 23:26
По-моему правильнее увидеть в ячейке -nan(ind)
Самое интересное, что Microsoft Excel именно это и отображает, но ещё почему-то возникает ошибка при открытии XLSX. :(
Возможно, работа с неопределённостями управляется каким-то флагом XLSX, аналогично отображению нулей в ячейках ...
Или LibXLSXWriter как-то криво пишет эту неопределённость в XLSX файл ...

Хорошо бы задать этот вопрос автору библиотеки, но там надо продемонстрировать проблему на сях, а это не ко мне ... ;)
Вам помочь или не мешать ?

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 673
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL » 28 Февраль 2018, 9:44

Да все намного проще - в самом Excel отсутствует возможность записать неопределенность в числовое поле, вот он и офигевает, откуда это там взялось. Автор то в курсе и прямо говорит, что писать так не надо. Почему не встроил проверку - другой вопрос, но раз он не встроил, то и я не буду )

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 28 Февраль 2018, 10:12

RaFaeL писал(а):
28 Февраль 2018, 9:44
но раз он не встроил, то и я не буду )
На самом деле таких вопросов, после которых получается bad XLSX, в LibXLSXWriter много.
Например пересечение объединений ячеек на листе.

Полностью согласен, что проще и эффективней мы все эти вопросы решим сами на прикладном уровне.
Здесь главное знать об этих особенностях ! ;) Ещё раз спасибо всем кто помог разобраться с ситуацией.
Вам помочь или не мешать ?

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 01 Март 2018, 8:50

У меня случайно отвалился модуль TPICTURE, и как-то сразу почувствовалось, что использование установки форматов
картинок ощутимо замедляет экспорт. Особенно на разношёрстных данных, где постоянно меняется картинка. :(
Наверно, без особой необходимости, лучше всегда устанавливать форматы ячеек напрямую через ExcelMask !
Вам помочь или не мешать ?

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 15 Март 2018, 11:51

Добрый день !

Помогите пожалуйста разобраться с происходящим ... :( Хочу вывести текст с переносом строки. Например:

Код: Выделить всё

   err#=xlsx.WriteString(1,2,'12345<13,10>67890')
Получаю вот такое:
test.jpg

Причём, что интересно, вот этот код "_x000D_" действительно как строка записан в XML файле.
Если создать XLSX c таким же текстом через Microsoft Excel - то в XML записаны именно коды <13,10>
и никаких проблем при открытии такого XLSX в Apache Calc не возникает ....

Кто подменяет код переноса "<13,10>" на "_x000D_" и зачем ? Заранее спасибо !
Вам помочь или не мешать ?

kreator
Ветеран
Сообщения: 2729
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

libxlsxwriter for Clarion

Сообщение kreator » 15 Март 2018, 12:44

Игорь, а ничего не путаешь? В классическом xml символ '<13>' - '<br />'. У SV в классах есть преобразования специфических символов. Я сделал себе простую функцию преобразования кларионовской строки в xml строку на их основе.
С уважением, Kreator.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3291
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 15 Март 2018, 13:03

А давайте, не будем спорить о теории конг-фу и рассмотрим конкретный пример. ;)
Вот XML файл из XLSX с моим примером, который создан в Microsoft Excel.
Ключевые места обвёл красненьким.

xml.png
Этот XLSX прекрасно открывается везде и нет никаких проблем с ячейками в которых перенос строк.
Через XLSXWriter такой файл сейчас создать низя, в чём собственно и вопрос ... :)
Вам помочь или не мешать ?

Ответить