libxlsxwriter for Clarion
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Создание файлов Excel (xlsx) без использования Excel на основе проекта libxlsxwriter (https://libxlsxwriter.github.io). Можно создавать файлы, листы в них, писать данные (текст (в т.ч. русский), число, дата, время), ставить форматирование (цвет, рамки, шрифт, выравнивание, размер), объединять ячейки, фиксировать и скрывать строки и колонки, вставлять изображения, рисовать графики (диаграммы), устанавливать настройки печати и свойства документа.
Для конвертирования "картинок" форматов используется библиотека Tpicture от Taboga, у кого этого класса нет замените на что-то свое
Для конвертирования "картинок" форматов используется библиотека Tpicture от Taboga, у кого этого класса нет замените на что-то свое
- Вложения
-
- libxlsxwriter.zip
- Версия 1.5 от 30.12.2021 на основе библиотеки 1.1.4
- (276.26 КБ) 995 скачиваний
Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Тогда согласен. Но мы то для пользователей делаем отчёты ...
Вот если бы (по аналогии с упомянутой всуе 1С) после такого "втягивания" был движок, который позволил
сформировать отчёт в Excel (Calc), Word (Writer), PDF, XPS и обычный REPORT для быстрой печати - то тогда
бы во всех этих плясках с бубном был бы здравый смысл ... Я так считаю.

Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5239
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
libxlsxwriter for Clarion
Не совсем понял. Нарисуйте бланк в excel/calc и запрограммируйте вручную. Сравните время. Учтите, что бланк потом еще сопровождать надо. А некоторым пользователям нужна специальная версия, которую также трудоемко параметрическими настройками делать. А это все живые деньги, так как пользователи за отчетами к нам идут...
По поводу вывода куда угодно, это утопия. Я давно уже разделяю табличные формы и произвольные формы. Для них есть разные инструменты. Да, теоретически, сделав произвольную форму, как, например, в кларионовском репорте, мы можем сохранить ее в табличном формате xls или xlxs. Но придется мелко нарезать колонки и строки. Работать с такой формой уже, мягко говоря, пользователю будет неудобно.
По поводу вывода куда угодно, это утопия. Я давно уже разделяю табличные формы и произвольные формы. Для них есть разные инструменты. Да, теоретически, сделав произвольную форму, как, например, в кларионовском репорте, мы можем сохранить ее в табличном формате xls или xlxs. Но придется мелко нарезать колонки и строки. Работать с такой формой уже, мягко говоря, пользователю будет неудобно.
C6/C12, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5239
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
libxlsxwriter for Clarion
Иногда я рисую бланк в excel, а печатаю кларионовским репортом. Это в ряде случаев очень удобно, так как имеем и быструю печать, и, при необходимости, нормальную форму в xls. По опыту, не серебрянная пуля, некоторые формы удобнее и быстрее делать в дизайнере для произвольных форм.
C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
А я вот говорил об обратной задаче, по аналогии с 1С. И кажется она на порядок проще.finsoftrz писал(а): 24 Январь 2018, 17:17Да, теоретически, сделав произвольную форму, как, например, в кларионовском репорте, мы можем сохранить ее в табличном формате xls или xlxs.
Т.е. на основе некой табличной формы бланка (XLS и "выгрузки" из XLS) формировать все виды готовых отчётов, в т.ч. и REPORT.
Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5239
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
libxlsxwriter for Clarion
Я про этот вариант написал в предыдущем посте. Для сведения, в 1с8 также есть 2 разных инструмента, один для разработки табличных форм, другой для разработки произвольных форм. В 1с77 были только табличные формы и серьезные проблемы с постраничной разбивкой, на которую все просто забивали.
C6/C12, ШВС, tps/btrieve.
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Опять ушли от темы, вроде обещали не оффтопить? У нас визуальный редактор вообще написан, оттуда хоть в xlsx, хоть куда, клиенты сами себе рисуют что хотят, я же про него тут не пишу. Давайте все-таки отдельную тему про ваши шаблоны? Или это специально так, для продвижения своего класса?
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
И это они называют демократической страной ... 
А чего по теме ? Тема исчерпана. Ошибок и проблем даже я со своими придирками не вижу.
Сидим ждём новый DLL ... ну и апим тему, что бы не затерялась в ожидании ...

А чего по теме ? Тема исчерпана. Ошибок и проблем даже я со своими придирками не вижу.
Сидим ждём новый DLL ... ну и апим тему, что бы не затерялась в ожидании ...

Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5239
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
libxlsxwriter for Clarion
Да мы вроде по теме, область применения враппера. Если это чем-то смущает, то не будем. Мне все равно в общем-то.RaFaeL писал(а): 24 Январь 2018, 21:57Опять ушли от темы, вроде обещали не оффтопить? У нас визуальный редактор вообще написан, оттуда хоть в xlsx, хоть куда, клиенты сами себе рисуют что хотят, я же про него тут не пишу. Давайте все-таки отдельную тему про ваши шаблоны? Или это специально так, для продвижения своего класса?
Нет, свой класс я не продвигаю. В открытый доступ выкладывать не планирую, просто не вижу смысла. Так же, как и продавать, не мой фасончик...
C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Если позволите - хотел бы всё-таки вернуться к одному вопросу ...
Библиотека XLSXWriter не работает с диапазонами и форматирование в ней выполняется при последовательном заполнении ячеек.
OK ! Работаем с таким алгоритмом форматирования. Но тогда я постоянно налетаю на нелогичную последовательность.
Пример:
Результат:
Как обойти проблему - я знаю ...
Библиотека XLSXWriter не работает с диапазонами и форматирование в ней выполняется при последовательном заполнении ячеек.
OK ! Работаем с таким алгоритмом форматирования. Но тогда я постоянно налетаю на нелогичную последовательность.
Пример:
Код: Выделить всё
xlsx.ClearFormat()
xlsx.Format.Border.Format = XLSX:BORDER_THIN; xlsx.SetFormat()
err#=xlsx.WriteString(11,10,'OK !')
xlsx.Format.Bottom.Format = XLSX:BORDER_DOUBLE; xlsx.SetFormat()
err#=xlsx.WriteString(11,11,'OK !')
xlsx.Format.Bottom.Format = XLSX:BORDER_NONE; xlsx.SetFormat()
err#=xlsx.WriteString(11,12,'Error !')
xlsx.Format.Bottom.Format = XLSX:Border_Thick; xlsx.SetFormat()
err#=xlsx.WriteString(11,13,'OK !')
Как обойти проблему - я знаю ...

Make Clarion Great Again ! 
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Не хотелось бы заниматься рисованием прозрачных линий, а то еще котеночка попросите )) https://www.youtube.com/watch?v=nU0Fy5JXOtY
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Ха ! Так Вы же и так это сделали, объявив что XLSX:BORDER_NONE - это точно такой же вид рамки, как и все остальные. 
Но в реале получается, что это не так.
XLSX:BORDER_NONE - особый вид рамки, который нельзя использовать для модификации xlsx.Format.Border.Format ....

Но в реале получается, что это не так.
XLSX:BORDER_NONE - особый вид рамки, который нельзя использовать для модификации xlsx.Format.Border.Format ....

Make Clarion Great Again ! 
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Посмотрю, как там внутри, если лишних пустых данных внутри xlsx не будет то добавлю
libxlsxwriter for Clarion
Взаимоотношение заказчика с исполнителемRaFaeL писал(а): 25 Январь 2018, 12:23Не хотелось бы заниматься рисованием прозрачных линий, а то еще котеночка попросите )) https://www.youtube.com/watch?v=nU0Fy5JXOtY

RaFaeL - спасибо за ссылку, поднял настроение на день

С Уважением, Developer
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Ничего лишнего не будет. Надо просто штатно отрисовывать XLSX:BORDER_NONE как и все другие типы рамок.
Потому, что если когда-нибудь допилят работу с диапазонами ячеек, без этого вообще грустно будет ...

Make Clarion Great Again ! 
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Заранее прошу пардона, но это снова я.
И у меня есть что сообщить: с рамками что-то не то .... 
Возможно не хватает моих знаний, помогите пожалуйста разобраться. Снова мой примитивный код:
Рисуем две смежные ячейки с разными рамками, потом инвертируем рамку и ещё раз рисуем то же самое.
Ожидается просто противоположная картина, но получается вот это (смотрим на полоску посередине):
Т.е. такое неизгладимое впечатление, что более "плотная" рамка закрашивает более "тонкую" ?


Возможно не хватает моих знаний, помогите пожалуйста разобраться. Снова мой примитивный код:
Код: Выделить всё
Loop i# = 1 to 2
xlsx.ClearFormat()
xlsx.Format.Border.Format = Choose(i#, XLSX:BORDER_DOTTED, XLSX:BORDER_THIN)
xlsx.SetFormat()
err#=xlsx.WriteBlank(11,8 + i# * 2)
xlsx.Format.Border.Format = Choose(i#, XLSX:BORDER_THIN, XLSX:BORDER_DOTTED)
xlsx.SetFormat()
err#=xlsx.WriteBlank(12,8 + i# * 2)
end
Ожидается просто противоположная картина, но получается вот это (смотрим на полоску посередине):
Т.е. такое неизгладимое впечатление, что более "плотная" рамка закрашивает более "тонкую" ?

Make Clarion Great Again ! 