libxlsxwriter for Clarion
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 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 КБ) 982 скачивания
Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5226
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 63 раза
libxlsxwriter for Clarion
Извините, думал, что интересно будет, так как аналогичный подход можно использовать и с библиотекой, о которой идет речь. Если админ удалит эти посты, я не против.
C6/C12, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5226
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 63 раза
libxlsxwriter for Clarion
Нет, с xls. Но смысл не меняется, библиотеки для вывода в excel работают однотипно. Заменить одну на другую не должно вызвать сложностей.
C6/C12, ШВС, tps/btrieve.
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
libxlsxwriter for Clarion
Подставил для вывода фото в xlsx справочника товара, не выводит.RaFaeL писал(а): 11 Декабрь 2017, 18:36 Пробуйте
Если еще чего не хватает, пишите, постараюсь добавить
Разобрался, из-за ограничения по буферу или zlib не может сзиповать

Если в пример добавить код ниже вы сами увидите, надеюсь
Код: Выделить всё
LOOP i# = 1 to 600 ! меньше 500 - выводит
options.x_offset=1
options.y_offset=1
options.x_scale=0.5
options.y_scale=0.5
err#=xlsx.InsertImage(i#,2,'c:\Program_2017\Exsample\libxlsxwriter_171211\Photo\image002.png',options)
end
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Выдает ошибку 8, "Function parameter validation error."
Вероятно, внутреннее ограничение
Покопал исходники, похоже что дело в количестве одновременно открытых файлов. Файл открывается сразу и не закрывается до создания файла. Автору написал.
P.S. Автор ответил что поправлено в новой версии
https://github.com/jmcnamara/libxlsxwriter/issues/106
Надо скачать и пересобрать, сейчас займусь )
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
libxlsxwriter for Clarion
Так и есть, так как я из блоба - BLOBTOFILE(pictures,'tmp.jpg') создаю tmp-фото, закидываю в xlsx, и сразу удалял tmp-фото, и так по циклу. В libxlsxwriter удалять tmp-фото не давало.RaFaeL писал(а): 13 Декабрь 2017, 11:48Вероятно, внутреннее ограничение
Покопал исходники, похоже что дело в количестве одновременно открытых файлов. Файл открывается сразу и не закрывается до создания файла. Автору написал.

“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Пересобрал на текущей версии 0.7.5, проверил, работает. Обновил стартовый пост
-
- Полимат
- Сообщения: 1810
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 24 раза
- Поблагодарили: 10 раз
libxlsxwriter for Clarion
спасибо,
пример работает, проверю в рабочем проекте

“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
libxlsxwriter for Clarion
RaFael, будет ли продолжение библиотеки? Я имею ввиду функции Сhart-ов.
C10, Win10x64
-
- Новичок
- Сообщения: 14
- Зарегистрирован: 15 Март 2009, 19:40
- Откуда: Bulgaria, Varna
- Контактная информация:
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Вообще собирался, решил подождать пока будет готово вот это https://github.com/jmcnamara/libxlsxwriter/issues/91vic7tar писал(а): 15 Декабрь 2017, 3:04RaFael, будет ли продолжение библиотеки? Я имею ввиду функции Сhart-ов.
И что-то там многовато функций ))
- Игорь Столяров
- Ветеран движения
- Сообщения: 8016
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 94 раза
libxlsxwriter for Clarion
Можно я тоже буду спрашивать непонятности ?
Если буду тупить - не ругайтесь, я быстро учусь. 
Нельзя вернуться к рисованию нормальным шрифтом.
Т.е. вот так не получается:
Приходится делать не очевидно:


Нельзя вернуться к рисованию нормальным шрифтом.
Т.е. вот так не получается:
Код: Выделить всё
MyXLSX.Format.FontStyle = Font:Bold
MyXLSX.SetFormat()
! Выводим жирным шрифтом
MyXLSX.Format.FontStyle = Font:Regular
MyXLSX.SetFormat()
! И всё равно жирный шрифт :(
Код: Выделить всё
....
Clear(MyXLSX.Format.FontStyle)
MyXLSX.SetFormat()
! OK - шрифт вернулся к нормальному ...
Make Clarion Great Again ! 
-
- ✯ Ветеран ✯
- Сообщения: 1038
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
libxlsxwriter for Clarion
Игорь Столяров писал(а): 16 Декабрь 2017, 22:03 Можно я тоже буду спрашивать непонятности ?Если буду тупить - не ругайтесь, я быстро учусь.
Нельзя вернуться к рисованию нормальным шрифтом.
Т.е. вот так не получается:насколько я понял - так и должно быть..., все "штатно" - последующие setformat добавляют к предыдущим установкам новые свойства, т.е. если б было после болд не болд а италик, то выдал бы жирным курсивом, см. пример на гит..Код: Выделить всё
MyXLSX.Format.FontStyle = Font:Bold MyXLSX.SetFormat() ! Выводим жирным шрифтом MyXLSX.Format.FontStyle = Font:Regular MyXLSX.SetFormat() ! И всё равно жирный шрифт :(
https://clck.ru/CJr33
Последний раз редактировалось Ал 16 Декабрь 2017, 23:23, всего редактировалось 1 раз.
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Ну я тоже только учусь, поэтому там просто написана ерунда )
Попробуйте новый вариант
Попробуйте новый вариант
Последний раз редактировалось RaFaeL 13 Январь 2018, 14:36, всего редактировалось 1 раз.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8016
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 94 раза
libxlsxwriter for Clarion
Да ! Спасибо, теперь возврат к обычному шрифту работает.
Я, что-то никак не могу понять божественный замысел автора по работе с диапазонами ячеек.
Примеры на сайте смотрел ... Предположим, хочу закрасить 2 диапазона ячеек.
Добавляем:
Теперь, по идее, должно работать следующее:
Но не работает. 
Понятно, что не работает применение формата к диапазону ячеек. Но что конкретно ?
Я, что-то никак не могу понять божественный замысел автора по работе с диапазонами ячеек.

Примеры на сайте смотрел ... Предположим, хочу закрасить 2 диапазона ячеек.
Добавляем:
Код: Выделить всё
MAP
MODULE('libxlsxwriter.dll')
...
worksheet_set_selection(LONG worksheet,LONG first_row,LONG first_col, |
LONG last_row,LONG last_col),LONG,RAW,C,NAME('worksheet_set_selection')
xlsxwriter CLASS
...
SetRange PROCEDURE(LONG first_row_,LONG first_col_,LONG last_row_,LONG last_col_),LONG
xlsxwriter.SetRange PROCEDURE(LONG first_row_,LONG first_col_,LONG last_row_,LONG last_col_)
CODE
return worksheet_set_selection(SELF.ActiveWorksheet,first_row_-1,first_col_-1,last_row_-1,last_col_-1)
Код: Выделить всё
xlsx.ClearFormat() ! Сбросили формат
xlsx.SetFormat()
err# = xlsx.SetRange(1,1,2,2) ! Применить к диапазону
xlsx.Format.Color=color:yellow
xlsx.SetFormat() ! Установить формат
err# = xlsx.SetRange(3,4,5,6) ! Применить к диапазону
xlsx.Format.Color=color:Red
xlsx.SetFormat() ! Установить формат
!err# = xlsx.SetRange(3,4,5,6) ! И так тоже не работает

Понятно, что не работает применение формата к диапазону ячеек. Но что конкретно ?
Make Clarion Great Again ! 