libxlsxwriter for Clarion

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

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

libxlsxwriter for Clarion

Сообщение kreator »

Игорь Столяров писал(а):Результат: что-то происходит внутри DLL IqXML на парсинге больших файлов (есть такой бесплатный проект работы c XML файлами).Версия DLL от мая 2016 г. работает, а текущая версия от сентября 2016 г. - нет. Почему - ХЗ. Проект IqXML - умер. Пока для C10 старый DLL подходит - жить можно, дальше - плохо.Я вот теперь думаю, переписывать большой объем кода под очередной самопал и ждать пока он загнетсяс такими вот фирулями или все-таки потратится и написать разбор этих XML самому ?
У Вас с RaFaeL'ем разный подход. RaFaeL версию не меняет (может ещё и по этой причине). Я тоже стараюсь раз в 3-4 месяца обновиться. И, конечно, вылезают проблемы. Поэтому, задача - минимизировать проблемы. Много сторонних dll -> много времени на отладку -> много ресурсов (людей). Как я писал, лучше зависеть от одной конторы. Или хотя бы от себя.
И ещё мне очень не нравятся бесплатные проекты. Во-первых они не вечные. Во-вторых, у разработчиков бывает очень интересный подход. Я столкнулся. Попросили посмотреть открытую графическую библиотеку (на с++, может практически всё, вплоть до распознавания движущихся объектов на видео). Хелп не актуальный, примеров практически нет. Видимо, считают, что пользователи раз не платят, то хотя бы пусть найдут время изучить как всё это работает.
А кларионовский класс для xml совсем никакой?
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

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

kreator писал(а): А кларионовский класс для xml совсем никакой?
В С10 - нормальный. С ним можно работать, просто не совсем удобно ... к тому же только в UTF-8.
kreator писал(а): хотя бы пусть найдут время изучить как всё это работает
Иногда бывает по другому. Если делали библиотеку под какой-либо тендер на гос / бюджетный заказ, то там часто прописывают публикацию используемого кода. Вроде как защита бюджетных денег. В принципе риска никакого - все равно фиг кто разберется ... :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Еще раз - сабжевая библиотека от версии Клариона не зависит! Именно этим она и ценна!
Собрал либу 0.6.9 через MinGW старый, без лишних зависимостей, завтра проверю и выложу комплект, далее только кларионовский код меняться будет
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Обновил стартовый пост
Библиотека версии 0.6.9
Добавил метод фиксации строк и колонок
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

libxlsxwriter for Clarion

Сообщение gopstop2007 »

Попробовал, хороша, шустро, спасибо. Хотелось бы, чтобы полностью заменить чем сейчас пользуюсь, необходима вставка картинок(image) в excel.
Добавил в .clw

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

worksheet_insert_image(LONG worksheet,LONG row,LONG col,*CSTRING string),LONG,RAW,C,NAME('worksheet_insert_image') 

xlsxwriter.InsertImageOpt  PROCEDURE(LONG row_,LONG col_,STRING string_) 
cstr     &CSTRING

  CODE
    cstr &=new(cstring(len(clip(string_))*2+1))
    cstr = clip(string_)
    ConvertCharSet(cstr,0,65001)
    ret#=worksheet_insert_image(SELF.ActiveWorksheet,row_-1,col_-1,cstr)
    dispose(cstr); 
    return ret#
Вставляет картинку, но одна проблема, без форматирования, не вписывает картинку в клетку
Добавляю еще процедуру

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

worksheet_insert_image_opt(LONG worksheet,LONG row,LONG col,*CSTRING string,*CSTRING options),LONG,RAW,C,NAME('worksheet_insert_image_opt')
Но, не получается передать последний параметр - options
https://github.com/jmcnamara/libxlsxwriter/issues/85
Помогите добрым словом :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

gopstop2007 писал(а): 07 Декабрь 2017, 21:51
Пробуйте
Если еще чего не хватает, пишите, постараюсь добавить
Последний раз редактировалось RaFaeL 13 Январь 2018, 14:33, всего редактировалось 1 раз.
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

libxlsxwriter for Clarion

Сообщение gopstop2007 »

RaFaeL писал(а): 11 Декабрь 2017, 18:36 Пробуйте
Если еще чего не хватает, пишите, постараюсь добавить
Спасибо огромное! Работает :D
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
George
Активист
Сообщения: 100
Зарегистрирован: 04 Август 2009, 10:48

libxlsxwriter for Clarion

Сообщение George »

RaFaeL писал(а): 11 Декабрь 2017, 18:36
gopstop2007 писал(а): 07 Декабрь 2017, 21:51
Пробуйте
Если еще чего не хватает, пишите, постараюсь добавить
А как открыть уже созданный файл (шаблон) и туда добавить данные ?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7330
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

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

George писал(а): 12 Декабрь 2017, 20:45А как открыть уже созданный файл (шаблон) и туда добавить данные ?
Низя. :( см. https://libxlsxwriter.github.io/introduction.html
За теми кто отстал - не возвращаться. (С) Кодекс
Igor Vesnin
Посетитель
Сообщения: 49
Зарегистрирован: 30 Декабрь 2005, 0:06

libxlsxwriter for Clarion

Сообщение Igor Vesnin »

Можно написать парсер, который из бланка (шаблона) подготовит скрипт (файл с описание форматов ячеек и т.д.). А по скрипту создавать файл с помощью, например, этой библиотеки.

Для xlsx можно и не писать парсер. Просто распаковать файл и открывать соответствующие XML файлы и по ним создавать файл.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

libxlsxwriter for Clarion

Сообщение finsoftrz »

Я так и делаю. Только для вывода использую DExcel. В принципе, на месте DExcel можно и другие библиотеки подцепить.
На первом скрине бланк в Excel.
На втором сгенеренной программой шаблон (скрипт). Заголовок до ******* вписывается вручную, остальное создается автоматически.
На третьем результат в Excel.
На четвертом результат в Report.
Вложения
excelRep1.jpg
excelRep2.jpg
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

libxlsxwriter for Clarion

Сообщение finsoftrz »

Продолжение...
Вложения
excelRep3.jpg
excelRep4.jpg
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4562
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

libxlsxwriter for Clarion

Сообщение finsoftrz »

Еще код в приложении, остальное шаблоном.

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

form_r routine  !формирование отчета

     do startPrn_r  !начать печать

     FsPrimary:Param(1)
     FsRep.PrgViewRTF=PAR:PrgBlancsEdit
     do bind_r

     loc:nameDet='Шапка' ; do print_r

     clear(SotGr:record,-1)
     set(SotGr:keyName,SotGr:keyName)
     loop
         next(sotrGr)
         if error()
            break
         .
         if Loc:Gr>0 and Loc:Gr<>SotGr:ID
            cycle
         .

         loc:nameDet='Группа' ; do print_r

         clear(sot:record,-1)
         sot:IDGr=sotGr:ID
         if Loc:Sort=1
            set(Sot:keyKodGr,Sot:keyKodGr)
         else
            set(Sot:keyNameGr,Sot:keyNameGr)
         .

         loop
              next(sotr)
              if error() or sot:IDGr<>sotGr:ID
                 break
              .
              loc:nameDet='Строка' ; do print_r
           .
        .

     loc:nameDet='Подвал' ; do print_r

     do endPrn_r  !завершить печать
     do unbind_r
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Заведите, пожалуйста, для своих шаблонов отдельную тему. Эта про конкретную библиотеку
George
Активист
Сообщения: 100
Зарегистрирован: 04 Август 2009, 10:48

libxlsxwriter for Clarion

Сообщение George »

finsoftrz писал(а): 13 Декабрь 2017, 8:25 Я так и делаю. Только для вывода использую DExcel. В принципе, на месте DExcel можно и другие библиотеки подцепить.
На первом скрине бланк в Excel.
На втором сгенеренной программой шаблон (скрипт). Заголовок до ******* вписывается вручную, остальное создается автоматически.
На третьем результат в Excel.
На четвертом результат в Report.
А умеет DExcel работать с XLSX ???
Ответить