libxlsxwriter for Clarion

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

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 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 КБ) 982 скачивания
Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

libxlsxwriter for Clarion

Сообщение gopstop2007 »

когда то подымал вопрос по Split, да есть в libxlsxwriter - SplitPanel,к сожалению им пользоваться не удобно, хотелось если возможно:
установить закрепление

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

With ActiveWindow
        .SplitColumn = 5
        .SplitRow = 6
    End With
    ActiveWindow.SplitRow = 14      ' нужное значение
    ActiveWindow.SplitColumn = 3   ' нужное значение
    ActiveWindow.FreezePanes = True
End Sub
снять закрепление

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

With ActiveWindow
        .SplitColumn = 0
        .SplitRow = 0
End With
End Sub
или как можно в libxlsxwriter с помощью vba это реализовать?

Спасибо за внимание
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

libxlsxwriter for Clarion

Сообщение gopstop2007 »

извиняюсь, заработался, есть, обновил до последнего
понял что спутал Split с Freeze :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Alex
Старожил
Сообщения: 211
Зарегистрирован: 29 Август 2005, 14:54
Откуда: Белоруссия

libxlsxwriter for Clarion

Сообщение Alex »

Когда в приложении подключена библиотека ZLIB
Include('ZipClass.inc')
То при попытке подключить
INCLUDE('xlsxwriter.inc')
На этапе сборки появляются ошибки (одноименные процедуры в двух DLL: zlibwapi.dll и в libxlsxw.dll
Duplicate symbol: zipClose in libxlsxw.dll
Duplicate symbol: zipCloseFileInZip in libxlsxw.dll и т.п.
Возможно кто-то сталкивался? Есть ли решение?
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

libxlsxwriter for Clarion

Сообщение Yufil »

К dll-файлу прилагается lib-файл. Lib строится утилитой libmaker, входящей в состав Клариона.
Для построения либы
1. запускается libmaker
2. загружается dll
3. После загрузки dll на экран выводятся внешние ссылки dll.
4. Удалить дублирующие ссылки
5. Сохранить либу
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8016
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 94 раза

libxlsxwriter for Clarion

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

Yufil писал(а): 03 Декабрь 2020, 19:06 Удалить дублирующие ссылки
А не переклинит из-за отсутствия ссылки на процедуру в DLL ?
Мне кажется более правильно задать в MAP уникальные имена для процедур в разных DLL
В данном случае достаточно исправить даже одно. Что-то вроде:

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

  Map 
     MyFreeImageCloseMem(LPFIMEMORY mstream), Pascal, Name('_FreeImage_CloseMemory') ! <- Имя в DLL
  end
Make Clarion Great Again ! 😎
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Игорь Столяров писал(а): 03 Декабрь 2020, 20:29 А не переклинит из-за отсутствия ссылки на процедуру в DLL ?
Не переклинит. По идее, мне надо в lib не всю libxlsxw.dll экспортировать, а только нужные функции. Но, поскольку мне лень, я тупо всю dll туда кидаю. У кого дубликаты, сделайте свою libxlsxw.lib на основе libxlsxw.dll без дублирующих функций
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

С другой стороны, стоит посмотреть, а надо ли таскать две библиотеки zlib. Может, перенаправить ZipClass на сам libxlsxwriter
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

libxlsxwriter for Clarion

Сообщение Yufil »

Игорь Столяров писал(а): 03 Декабрь 2020, 20:29
Yufil писал(а): 03 Декабрь 2020, 19:06 Удалить дублирующие ссылки
А не переклинит из-за отсутствия ссылки на процедуру в DLL ?
Мне кажется более правильно задать в MAP уникальные имена для процедур в разных DLL
В данном случае достаточно исправить даже одно. Что-то вроде:

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

  Map 
     MyFreeImageCloseMem(LPFIMEMORY mstream), Pascal, Name('_FreeImage_CloseMemory') ! <- Имя в DLL
  end
Это не о том, сами dll содержат одинаковые ссылки. Линкеру непонятно, какую испольщовать.
А я такую вещь делал, именно для zlib - заменил на новую версию и получил ...
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8016
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 94 раза

libxlsxwriter for Clarion

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

Yufil писал(а): 03 Декабрь 2020, 22:16 Это не о том, сами dll содержат одинаковые ссылки
Понял ... А нельзя zlib прилинковать к libxlsxw.dll, что бы не было внешних ссылок ?
Как я понимаю, в LibCurl сейчас именно так сделано (в ранних релизах был в комплекте zlib1.dll)
Make Clarion Great Again ! 😎
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

libxlsxwriter for Clarion

Сообщение vic7tar »

RaFaeL писал(а): 03 Декабрь 2020, 21:55 По идее, мне надо в lib не всю libxlsxw.dll экспортировать, а только нужные функции.
Зачем обрезать хороший продукт - пускай будет всё.
Игорь Столяров писал(а): 03 Декабрь 2020, 22:29 А нельзя zlib прилинковать к libxlsxw.dll, что бы не было внешних ссылок ?
Это что, спаять в одно целое исходники zlib и libxlsxw? :idied:
==================================================================
А где можно посмотреть ZipClass (на FTP не нашел, а может плохо искал)?
C10, Win10x64
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

libxlsxwriter for Clarion

Сообщение Yufil »

Аватара пользователя
Alex
Старожил
Сообщения: 211
Зарегистрирован: 29 Август 2005, 14:54
Откуда: Белоруссия

libxlsxwriter for Clarion

Сообщение Alex »

Вот ZLIB
Вложения
ZipClass.clw
(45.52 КБ) 336 скачиваний
ZipClass.inc
(1.71 КБ) 366 скачиваний
Аватара пользователя
Alex
Старожил
Сообщения: 211
Зарегистрирован: 29 Август 2005, 14:54
Откуда: Белоруссия

libxlsxwriter for Clarion

Сообщение Alex »

Это список ошибок при линковке
Duplicate symbol: zipClose in libxlsxw.dll
Duplicate symbol: zipCloseFileInZip in libxlsxw.dll
Duplicate symbol: zipCloseFileInZipRaw in libxlsxw.dll
Duplicate symbol: zipOpen in libxlsxw.dll
Duplicate symbol: zipOpen2 in libxlsxw.dll
Duplicate symbol: zipOpenNewFileInZip in libxlsxw.dll
Duplicate symbol: zipOpenNewFileInZip2 in libxlsxw.dll
Duplicate symbol: zipOpenNewFileInZip3 in libxlsxw.dll
Duplicate symbol: zipWriteInFileInZip in libxlsxw.dll
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

libxlsxwriter for Clarion

Сообщение Yufil »

Можно удалить эти имена из zlibx.lib
Открой zlib.dll либмакером и удали записи экспорта (zipClose, zipclosefileinzip, ..., zipWriteInFileInZip) с этими именами, потом сохрани либу.

Но у меня есть смутное подозрение, что zlib совсем не нужна. Может быть, изъять её из прожекта?
Аватара пользователя
Alex
Старожил
Сообщения: 211
Зарегистрирован: 29 Август 2005, 14:54
Откуда: Белоруссия

libxlsxwriter for Clarion

Сообщение Alex »

ZLIB убрать , а вместо нее вызывать процедуры из libxlsxwriter?
Речь об этом?
Ответить