libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

Сообщение Губин Игорь » 11 Февраль 2019, 16:02

Напишите свой subclass вызова методов XLSXWriter
Лень. Слишком много переделывать в кодах, ежели по уму делать. А так тупо берёшь и переставляешь... :idied:
Это я только кажусь дураком! На самом деле я полный идиот!

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 862
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL » 12 Февраль 2019, 19:23

Обновил шапку

Сегодня два года, кстати )

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4109
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 12 Февраль 2019, 20:40

RaFaeL писал(а):
12 Февраль 2019, 19:23
Сегодня два года, кстати )
Спасибо ! Отличный проект ! :)
Но главное: реально востребованный и живой ! :)
«V» значит Вендетта !

Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 1279
Зарегистрирован: 16 Сентябрь 2005, 15:35
Откуда: Москва

libxlsxwriter for Clarion

Сообщение Губин Игорь » 12 Февраль 2019, 22:50

Игорь Столяров писал(а):
12 Февраль 2019, 20:40
Спасибо ! Отличный проект !
А глюки в библиотеке есть! :D

worksheet#=xlsx.AddSheet('...') имеет ограничения на длину строки. Причём, вылетает по памяти
Последний раз редактировалось Губин Игорь 13 Февраль 2019, 7:48, всего редактировалось 1 раз.
Это я только кажусь дураком! На самом деле я полный идиот!

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 862
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL » 12 Февраль 2019, 23:12

Губин Игорь писал(а):
12 Февраль 2019, 22:50
worksheet#=xlsx.AddSheet('...') имеет ограничения на длину строки. Причём вылетает по памяти
http://libxlsxwriter.github.io/workbook ... 030ecc3c2e
The worksheet name must be a valid Excel worksheet name, i.e. it must be less than 32 character
http://libxlsxwriter.github.io/workbook ... 140c434031

Это?
Сдается мне, что worksheet# в вашем примере будет =0 а вы это не проверяете и продолжаете дальше вызывать методы

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4109
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 13 Февраль 2019, 0:01

Губин Игорь писал(а):
12 Февраль 2019, 22:50
worksheet#=xlsx.AddSheet('...') имеет ограничения на длину строки.
Не только. Там ещё есть и ограничения на используемые символы, кстати, как и в самом Microsoft Excel.
Я поэтому всегда сначала проверяю "проблему" через интерфейс Microsoft Excel, а потом уже делаю выводы о глюках и т.д. ;)
«V» значит Вендетта !

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 862
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL » 13 Февраль 2019, 0:12

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

err#=xlsx.ValidateSheetName('...')
if err#=0
  worksheet#=xlsx.AddSheet('...')
! some code 
end
или

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

worksheet#=xlsx.AddSheet('...')
if worksheet#
! some code 
end

Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 1279
Зарегистрирован: 16 Сентябрь 2005, 15:35
Откуда: Москва

libxlsxwriter for Clarion

Сообщение Губин Игорь » 13 Февраль 2019, 7:49

RaFaeL писал(а):
12 Февраль 2019, 23:12
Сдается мне, что worksheet# в вашем примере будет =0 а вы это не проверяете и продолжаете дальше вызывать методы
Вылетает у меня, в рабочем приложении, в момент присвоения. Но на тестовом примере - да, повторил с workcheet=0 и вылетает после. В чём разница - не понятно.

А вот за Validate - спасибо. Попробую использовать, хотя, в моём случае, 99% - пустая проверка, всё равно не будет соответствовать.
Это я только кажусь дураком! На самом деле я полный идиот!

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4109
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 18 Февраль 2019, 8:08

RaFaeL писал(а):
13 Февраль 2019, 0:12
err#=xlsx.ValidateSheetName('...')
Оно как бы да ! Но …
Вот реальный пример из жизни кроликов:
Хочу отправить клиенту его накладные за год, каждая накладная на отдельной закладке
с наименованием почему-то "Накладная № [123] от 18.02.2019 г." и т.д.

В процессе создания отчёта получаю недопустимое наименование закладки и что оно мне с того ?
Здесь бы хорошо поиметь метод, который выполнит не валидацию, а нормализацию наименования закладки.
Т.е. сразу преобразует это наименование в допустимый вид, заменив запрещённые символы, предположим на "_"
(по аналогии с именами файлов, где запрещены символы: \/:*?"<>| )

Т.е. что-то вроде:

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

   worksheet#=xlsx.AddSheet('...' , <NormalizeSheetName = False>)
«V» значит Вендетта !

Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 1265
Зарегистрирован: 06 Ноябрь 2014, 12:48

libxlsxwriter for Clarion

Сообщение finsoftrz » 18 Февраль 2019, 9:17

Что наших кроликов останавливает? :-)
Лучше это внутри класса убрать, не надо лишних параметров в вызовах...
Рязань решает.

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 862
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL » 18 Февраль 2019, 9:19

Игорь Столяров писал(а):
18 Февраль 2019, 8:08
Здесь бы хорошо поиметь метод, который выполнит не валидацию, а нормализацию наименования закладки.
Ну так у вас же есть свой класс-обертка, там наверняка это можно написать )

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4109
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 18 Февраль 2019, 9:32

RaFaeL писал(а):
18 Февраль 2019, 9:19
Ну так у вас же есть свой класс-обертка, там наверняка это можно написать
Ну да. Просто думал может проскочить на шару (т.е. сделать в базовом методе) ? ;)
«V» значит Вендетта !

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 862
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL » 18 Февраль 2019, 9:56

Базовый метод должен повторять функциональность оригинальной библиотеки )

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4109
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 18 Февраль 2019, 10:29

RaFaeL писал(а):
18 Февраль 2019, 9:56
Базовый метод должен повторять функциональность оригинальной библиотеки
Согласный я с этим … :) Если номер не прокатил - тогда сделаю сам. :)
«V» значит Вендетта !

Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 1279
Зарегистрирован: 16 Сентябрь 2005, 15:35
Откуда: Москва

libxlsxwriter for Clarion

Сообщение Губин Игорь » 18 Февраль 2019, 10:53

Игорь Столяров писал(а):
18 Февраль 2019, 10:29
Если номер не прокатил - тогда сделаю сам.
Потом - алгоритм в студию. У меня есть аналогичный алгоритм нормализации для имён файлов в похожей ситуации. Т.ч. икебана будет полной
Это я только кажусь дураком! На самом деле я полный идиот!

Ответить