libxlsxwriter for Clarion

Программы на Clarion, шаблоны, библиотеки и пр.

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1412
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Создание файлов Excel (xlsx) без использования Excel на основе проекта libxlsxwriter (https://libxlsxwriter.github.io). Можно создавать файлы, листы в них, писать данные (текст (в т.ч. русский), число, дата, время), ставить форматирование (цвет, рамки, шрифт, выравнивание, размер), объединять ячейки, фиксировать и скрывать строки и колонки, вставлять изображения, рисовать графики (диаграммы), устанавливать настройки печати и свойства документа.
Для конвертирования "картинок" форматов используется библиотека Tpicture от Taboga, у кого этого класса нет замените на что-то свое
Вложения
libxlsxwriter.zip
Версия 1.5 от 30.12.2021 на основе библиотеки 1.1.4
(276.26 КБ) 1050 скачиваний
Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8090
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 29 раз
Поблагодарили: 98 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

RaFaeL писал(а): 04 Февраль 2018, 16:12Но в библиотеку никаких вставок точно не буду добавлять
Да, спасибо, я понял. Никаких проблем.
Рекомендуемое и правильное решение вопроса я услышал, будем делать ! :)
Make Clarion Great Again ! 😎
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1412
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Добавили уровни. Попробуйте
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1412
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Попробовал сам. Работает отлично, но пока нет настройки расположения управляющих кнопок
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1412
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Добавлены настройки отображения уровней
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8090
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 29 раз
Поблагодарили: 98 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

Дед Пахом писал(а): 04 Февраль 2018, 11:32На кой ляд класс в приложении объявлять? include('myxlsx.inc')
Я извиняюсь за свою темноту, но что-то никак не могу прокусить это место ... :(
Если я в хвост xlsxWriter.inc добавлю свой класс (и далее в программе его использую), то всё прекрасно.

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

!xlsxWriter.inc
....
xlsxmyuser    CLASS(xlsxwriter), TYPE, MODULE('myxlsx.clw'), LINK('myxlsx.clw')
MyLong      Long
            END
Но если я выношу свой класс в отдельный файл myxlsx.inc
и в APP -> After Global Include добавляю строчку с его включением в проект:

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

  Include('xlsxwriter.inc')
  Include('myxlsx.inc')
то всё компилируется (есстесно), но на этапе сборки получаю Unresolved External xlsxmyuser ....
Почему всё так ? :(
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3306
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 51 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение Дед Пахом »

myxlsx.inc должен содержать строку

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

Include('xlsxwriter.inc')
а APP не должен.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8090
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 29 раз
Поблагодарили: 98 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

Дед Пахом писал(а): 06 Февраль 2018, 20:04myxlsx.inc должен содержать строку
Неа ! Пробовал. Что-то тут не чисто ... :(
Сделал элементарный концепт проблемы на основе штатного примера.
Если есть возможность - посмотрите пожалуйста.
Последний раз редактировалось Игорь Столяров 07 Февраль 2018, 7:21, всего редактировалось 2 раза.
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3306
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 51 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение Дед Пахом »

Я бы посмотрел, да "rar" не понимаю.
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8090
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 29 раз
Поблагодарили: 98 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

О ! Раньше форум RAR не принимал ... :)
Заменяем на ZIP.
Вложения
bad_class.zip
(8.06 КБ) 97 скачиваний
Make Clarion Great Again ! 😎
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3306
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 51 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение Дед Пахом »

В xlsxmy.clw не тот файл инклюдится.

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

  Include('xlsxmy.inc')
  
Так у меня по крайней мере компилится (но не собирается, потому что lib не подключена в проекте).
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8090
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 29 раз
Поблагодарили: 98 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

Ура ! Заработало ! Спасибо ! :)

Но как всё запущено ... Почему бы компилятору не написать это человеческим языком ?
Теперь можно добавлять свои методы и данные в XLSXWriter не изменяя авторскую обёртку,
сделанный ранее код на 100% совместим и абсолютно нет необходимости вводить для этого
пятиэтажные имена данных и методов. Это место проехали. Ещё раз спасибо ! :)
Make Clarion Great Again ! 😎
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8090
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 29 раз
Поблагодарили: 98 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

Рискну ещё выйти с предложением ... ;) Можно ли добавить в метод MERGE обработку особого условия:

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

xlsxwriter.Merge ...
   if omitted(6)
      ....
   elsIf (first_row_ = last_row_) and (first_col_ = last_col_)
      Self.WriteString( ....
   else ...
      ....    
Потому что, например, вот такой код просто игнорируется:

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

   Row# = 5
   Col# = 3
   xlsxwriter.Merge(Row#,Col#,Row#,Col#,'Привет !')
Когда идёт прорисовка отчёта в динамике, эпизодически попадаю на эту комбинацию ...
В общем-то нет ничего плохого в том, что в метод передаётся "диапазон" из одной ячейки, это скорее особенность
библиотеки по работе с диапазонами, которую можно убрать.
Make Clarion Great Again ! 😎
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1412
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Добавил
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8090
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 29 раз
Поблагодарили: 98 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

Спасибо. А вот еще вопрос с фронта работ (я ещё разбираюсь !).
Группировка строк устанавливается методом SetRow(), у которого второй обязательный параметр - это высота строки.
Т.е. получается, что строки с WrapText нельзя группировать ?
Точнее обязательно нужно жёстко устанавливать высоту строки внутри группы. Я правильно понимаю ?
Make Clarion Great Again ! 😎
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1412
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Попробуйте передать 15
Ответить