libxlsxwriter for Clarion

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

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

libxlsxwriter for Clarion

Сообщение Губин Игорь »

RaFaeL писал(а): 25 Декабрь 2022, 19:36 Скорее всего, забываете чистить формат перед установкой чего-либо
Увы. как я уже писал, формат чистится не менее 6 раз на строку, а то и все 20. А "артефакты" наблюдаются в строках, в которые нет никакой записи.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1378
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Губин Игорь писал(а): 25 Декабрь 2022, 19:39 Увы. как я уже писал, формат чистится не менее 6 раз на строку, а то и все 20. А "артефакты" наблюдаются в строках, в которые нет никакой записи.
Я там выше поправил, но возможно уже позже и напишу еще раз. Это поведение похоже на то, что вы не очищаете формат перед применением ширины колонки, вот он и ставится для всей колонки
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4618
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

libxlsxwriter for Clarion

Сообщение finsoftrz »

Губин Игорь писал(а): 25 Декабрь 2022, 19:37
finsoftrz писал(а): 25 Декабрь 2022, 19:27 Насколько я помню, содержимое числовых ячеек хранится в одном основном xml, а строки (или только длинные строки) в другом (из основного ссылка на них)
Ну да, нашёл. Но трам-тарарам, без пол литра не разобраться. :dizzy:
Так тебе что надо, выгружать или загружать? Если загружать и напрямую из файла, могу глянуть в загашнике, когда-то пробовал формировать xlsx на уровне этих файлов, след есть.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

libxlsxwriter for Clarion

Сообщение Губин Игорь »

finsoftrz писал(а): 25 Декабрь 2022, 19:56 Так тебе что надо, выгружать или загружать? Если загружать и напрямую из файла, могу глянуть в загашнике, когда-то пробовал формировать xlsx на уровне этих файлов, след есть.
Мне надо выгружать. Проблема загрузки из файла интересует, исключительно, из любопытства. В своё время я загружал файлы из xls через ole и это было очень медленно.

Пытаюсь понять, с чего эти разработчики приборов так привязались к формату экселя. При чём они, явно, грузят из него напрямую, а не через csv, т.к. очень жёсткие требования к формату ячеек.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4618
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

libxlsxwriter for Clarion

Сообщение finsoftrz »

Да у них какая-нибудь управляющая софтина так сделана. Они художники, они так видят.
C6/C11, ШВС, tps/btrieve.
Alex_G
Бывалый
Сообщения: 77
Зарегистрирован: 09 Ноябрь 2009, 13:04
Поблагодарили: 2 раза

libxlsxwriter for Clarion

Сообщение Alex_G »

Добрый день. Отличная библитека для создания файлов xlsx.
По сравнению с EasyExcel, которой до этого пользовался - все летает.
Но наткнулся на одну непонятку с созданием фильтра на колонку.
В демо примере все отлично компилится и работает.
Перенес в свой проект - ошибка компиляции (Label in prototype not defined: XLAUTOFILTEROPERATOR ) на строке с вызовом проседуры xlsx.Autofilter() (код взял из примера, где нет ошибки)

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

     
    xlsx &=NEW(xlsxwriter)
    xlsx.NewWorkbook(LocPathExcelFile) 
    worksheet#=xlsx.AddSheet('Отчет')
    xlsx.SetColumn(1,1,40)
    xlsx.SetColumn(2,2,90)
  
	xlsx.ClearFormat()
	err#=xlsx.WriteNumber(9,5,10)
	err#=xlsx.WriteString(10,5,'Тест')
	err#=xlsx.Autofilter(1,5,5,5)
Убираю (комментирую) строку с Autofilter - все собирается.
Что я делаю не так.
CLARION 10, версия библиотеки от 30.12.2021

P.S. Разница с примером одна: пример собирается , как локальный exe-модуль, а мой проект - DLL.
Но с другими процедурами/функциями из библиотеки (я конечно не все использовал) проблем компиляции нет.
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1378
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

XLAUTOFILTEROPERATOR в моей библиотеке нет. Поищите по своим исходникам и прилинкованным библиотекам, где встречается Autofilter, какой-то конфликт
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7378
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

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

Могу подтвердить, что при сборке проектов с Multi-DLL библиотека LibXLSXWriter работает без проблем.

Как и во многих других случаях - рекомендую сделать простой пример для демонстрации проблемы,
который мы сможем собрать на заведомо рабочей среде разработки без всего что Вы в неё понаставили.

И вот тогда уже можно будет ответить на Ваш вопрос по существу. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Alex_G
Бывалый
Сообщения: 77
Зарегистрирован: 09 Ноябрь 2009, 13:04
Поблагодарили: 2 раза

libxlsxwriter for Clarion

Сообщение Alex_G »

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

libxlsxwriter for Clarion

Сообщение RaFaeL »

EasyExcel если ничего не путаю это вроде разработка Дед Пахом. Если мне кто-то скажет, что поменять, чтобы конфликта не было, то поменяю, но пока не знаю что. Раз что метод класса переименовать, но не хотелось бы
Alex_G
Бывалый
Сообщения: 77
Зарегистрирован: 09 Ноябрь 2009, 13:04
Поблагодарили: 2 раза

libxlsxwriter for Clarion

Сообщение Alex_G »

Спасибо за ответы, подсказали куда "копать". Т.к. к исходникам EasyExcel доступа нет, а сразу отказаться (выкинуть из проекта) не могу, решил проблему переименованием процедуры Autofilter в классе. Прокатило.
Остался вопрос, возможно ли задать фильтр целиком на столбец?
Alex_G
Бывалый
Сообщения: 77
Зарегистрирован: 09 Ноябрь 2009, 13:04
Поблагодарили: 2 раза

libxlsxwriter for Clarion

Сообщение Alex_G »

RaFaeL писал(а): 27 Апрель 2024, 15:35 EasyExcel если ничего не путаю это вроде разработка Дед Пахом. Если мне кто-то скажет, что поменять, чтобы конфликта не было, то поменяю, но пока не знаю что. Раз что метод класса переименовать, но не хотелось бы
EasyExcel это от IngaSoft (http://www.ingasoftplus.com/About.php), платная обертка.
Не знаю, Дед Пахом приложил к этому руку или нет.
В принципе есть практически все , что нужно. Но два минуса:
1. медленно работает с большими объемами
2. в условиях "импортозамещения", требование установки MS Excel на компьютере начинает ставить проблемы
Последний раз редактировалось Alex_G 27 Апрель 2024, 15:46, всего редактировалось 1 раз.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7378
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

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

А Вы можете задать автофильтр на всю колонку в Microsoft Excel ?
За теми кто отстал - не возвращаться. (С) Кодекс
Alex_G
Бывалый
Сообщения: 77
Зарегистрирован: 09 Ноябрь 2009, 13:04
Поблагодарили: 2 раза

libxlsxwriter for Clarion

Сообщение Alex_G »

Игорь Столяров писал(а): 27 Апрель 2024, 15:45 А Вы можете задать автофильтр на всю колонку в Microsoft Excel ?
В принципе, да .
Выделяю весь столбец, щелкая на "заголовке", и нажимаю "Фильтр".
В EasyExcel так и реализовано, Фильтр действует на выделенный диапазон, а выделить можно целиком один или несколько столбцов, опуская номера строк .
Здесь, как я понимаю, реализовано явным заданием диапазона, не допускающим неуказание границ.
С этим тоже можно работать, задавая заведомо максимальный номер строки. Не проблема
Alex_G
Бывалый
Сообщения: 77
Зарегистрирован: 09 Ноябрь 2009, 13:04
Поблагодарили: 2 раза

libxlsxwriter for Clarion

Сообщение Alex_G »

RaFaeL писал(а): 27 Апрель 2024, 15:35 EasyExcel если ничего не путаю это вроде разработка Дед Пахом. Если мне кто-то скажет, что поменять, чтобы конфликта не было, то поменяю, но пока не знаю что. Раз что метод класса переименовать, но не хотелось бы
Не думаю, что в законченном проекте будет использоваться и Libxlsxwriter и EasyExcel. У меня процесс перехода с одной на другую, вот и наткнулся.
Ответить