Страница 43 из 61

libxlsxwriter for Clarion

Добавлено: 11 Февраль 2019, 16:02
Губин Игорь
Напишите свой subclass вызова методов XLSXWriter
Лень. Слишком много переделывать в кодах, ежели по уму делать. А так тупо берёшь и переставляешь... :idied:

libxlsxwriter for Clarion

Добавлено: 12 Февраль 2019, 19:23
RaFaeL
Обновил шапку

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

libxlsxwriter for Clarion

Добавлено: 12 Февраль 2019, 20:40
Игорь Столяров
RaFaeL писал(а): 12 Февраль 2019, 19:23Сегодня два года, кстати )
Спасибо ! Отличный проект ! :)
Но главное: реально востребованный и живой ! :)

libxlsxwriter for Clarion

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

worksheet#=xlsx.AddSheet('...') имеет ограничения на длину строки. Причём, вылетает по памяти

libxlsxwriter for Clarion

Добавлено: 12 Февраль 2019, 23:12
RaFaeL
Губин Игорь писал(а): 12 Февраль 2019, 22:50worksheet#=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 а вы это не проверяете и продолжаете дальше вызывать методы

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

Добавлено: 13 Февраль 2019, 0:12
RaFaeL

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

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

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

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

libxlsxwriter for Clarion

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

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

libxlsxwriter for Clarion

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

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

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

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

   worksheet#=xlsx.AddSheet('...' , <NormalizeSheetName = False>)

libxlsxwriter for Clarion

Добавлено: 18 Февраль 2019, 9:17
finsoftrz
Что наших кроликов останавливает? :-)
Лучше это внутри класса убрать, не надо лишних параметров в вызовах...

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

Добавлено: 18 Февраль 2019, 9:56
RaFaeL
Базовый метод должен повторять функциональность оригинальной библиотеки )

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

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