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 КБ) 994 скачивания
Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
libxlsxwriter for Clarion
Что-то не могу найти, через OLE. Тыкните меня мордой.Игорь Столяров писал(а): 17 Январь 2018, 17:26Ничего подобного. Я же в одном из предыдущих сообщений показал пример, как это делается через OLE ....vic7tar писал(а): 17 Январь 2018, 17:10Стандартными средствами экселя подогнать высоту заполненной объединенной ячейки можно только мышкой
C10, Win10x64
libxlsxwriter for Clarion
Не соображу, причем тут твипы, но на всякий случай - https://www.translatorscafe.com/unit-co ... %8C%20(Y)/finsoftrz писал(а): 17 Январь 2018, 17:45Там непросто. Надо определить разрешение экрана в пикселях через win api, а затем через формулы перевести в твипсы. В VB есть стандартные функции для этого, а в кларионе нет. В твипсах же считаются координаты внутри офисных форматов (xlsx, rtf, например). Было бы неплохо иметь под рукой.
C10, Win10x64
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Столь радикальный педагогический процесс в нашем случае не потребуется.

Иногда достаточно посмотреть на задачу под другим углом.
Код работы с OLE очевиден, я просто опишу алгоритм.
Предположим нужно объеденить ячейки [A1:B1] и вывести в них текст с Wrap (как примере ниже).
- Объединяем [A1:B1], устанавливаем для неё аттрибут WrapText и запоминаем их общую ширину W;
- Выставляем для колонки [X] ширину W, для ячейки [X1] аттрибут WrapText и выводим в неё текст.
(высота строки 1 изменится, что бы поместился весь текст)
- Получаем реальную высоту строки 1 и записываем её как высоту строки 1;

- Удаляем текст из ячейки [X1] и восстанавливаем ширину колонки X по умолчанию (опционально).
- Ну и выводим тест в нашу ячейку [A1:B1]. Всё.

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

Растягивание составных ячеек в колонке вообще процесс неоднозначный.
Здесь ведь как-то должны менять высоту сразу несколько строк ....
Make Clarion Great Again ! 
libxlsxwriter for Clarion
Ну вот и разобрались, просто я посмотрел картинку вашей сложной формы и написал что написал.
C10, Win10x64
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
Ну да.vic7tar писал(а): 17 Январь 2018, 19:08Ну вот и разобрались, просто я посмотрел картинку вашей сложной формы и написал что написал.


Просто все эти ограничения с раздвижкой объединённых ячеек ставят под вопрос возможность
прорисовки произвольного отчёта в XLSX (что-то вроде дизайнера отчётов).
Make Clarion Great Again ! 
libxlsxwriter for Clarion
Ну обычно раздвигают по вертикали.
Если мне попадаются сложные формы, я поступаю так - в режиме разметки по ширине листа A4 все столбцы делаю одинаково маленькой ширины ( 1 или 2) примерно так: Тут простор для объединения ячеек очень широк, тексты можно расставлять как угодно, документ можно получить любой сложности.
Если мне попадаются сложные формы, я поступаю так - в режиме разметки по ширине листа A4 все столбцы делаю одинаково маленькой ширины ( 1 или 2) примерно так: Тут простор для объединения ячеек очень широк, тексты можно расставлять как угодно, документ можно получить любой сложности.
C10, Win10x64
libxlsxwriter for Clarion
Файл Report.xlsx с графиками успешно создан и открыт в версии Excel 2016 Microsoft® Excel® 2016 MSO (16.0.8730.2175) - это означает что версия Excel-я 2016 большой роли в возникновении ошибки не играетRaFaeL писал(а): 12 Февраль 2017, 14:06 Сборка 17.01.2018 на основе библиотеки версии 0.7.5 (212.23 КБ)

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

Make Clarion Great Again ! 
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Это означает, что ошибка исправленаDeveloper писал(а): 17 Январь 2018, 20:07это означает что версия Excel-я 2016 большой роли в возникновении ошибки не играет
libxlsxwriter for Clarion
vic7tar спасибо за информацию и ссылку!vic7tar писал(а): 17 Январь 2018, 14:51Gnumeric -> GNUmeric (https://ru.wikipedia.org/wiki/Gnumeric). Иногда использую.


Пожалуйста, откликнитесь, кто имел дело с GNUmeric - подходит ли для реальной работы вместо Excel 2007-2016

С Уважением, Developer
- morkovin
- Ветеран
- Сообщения: 935
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
- Контактная информация:
libxlsxwriter for Clarion
Clarion 6.2 (ABC)
Не пойму, куда вставлять INCLUDE('xlsxwriter.inc')? В глобальную DLL? В DLL с подпрограммой? В обе?
Что ещё надо определить и где?
Пробую вызвать xls-пример из своей DLL. По кнопке на форме вызываю процедуру (тип Window) с кнопкой, на которой навешен функционал примера. При нажатии вся прога вылетает (Приложение закрыто из-за ошибки и т.д.).
Моя Dll компилируется без ошибок только если INCLUDE('xlsxwriter.inc') вставлен в мою тест-процедуру.
Не пойму, куда вставлять INCLUDE('xlsxwriter.inc')? В глобальную DLL? В DLL с подпрограммой? В обе?
Что ещё надо определить и где?
Пробую вызвать xls-пример из своей DLL. По кнопке на форме вызываю процедуру (тип Window) с кнопкой, на которой навешен функционал примера. При нажатии вся прога вылетает (Приложение закрыто из-за ошибки и т.д.).
Моя Dll компилируется без ошибок только если INCLUDE('xlsxwriter.inc') вставлен в мою тест-процедуру.
Игорь Столяров писал(а): 16 Январь 2018, 9:26Есть вопрос, который рано или поздно всё равно придётся решать: поддержка приложений MULTI-DLL.
Сейчас LibXLSXWriter тупо прилинкуется к каждой DLL в проекте и всё вроде работает. Но это ведь не правильно .
WBR, morkovin
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
libxlsxwriter for Clarion
В те модули, где XLSXWriter используется. Ну и подключаем в проекте *.lib (иначе вообще не соберётся)
Make Clarion Great Again ! 