Страница 22 из 62
libxlsxwriter for Clarion
Добавлено: 12 Февраль 2017, 14:06
RaFaeL
Создание файлов Excel (xlsx) без использования Excel на основе проекта libxlsxwriter (
https://libxlsxwriter.github.io). Можно создавать файлы, листы в них, писать данные (текст (в т.ч. русский), число, дата, время), ставить форматирование (цвет, рамки, шрифт, выравнивание, размер), объединять ячейки, фиксировать и скрывать строки и колонки, вставлять изображения, рисовать графики (диаграммы), устанавливать настройки печати и свойства документа.
Для конвертирования "картинок" форматов используется библиотека Tpicture от Taboga, у кого этого класса нет замените на что-то свое
libxlsxwriter for Clarion
Добавлено: 19 Январь 2018, 10:42
finsoftrz
Точнее сказать, библиотека вычисляет весь блок <xdr:to>.
libxlsxwriter for Clarion
Добавлено: 19 Январь 2018, 12:30
RaFaeL
Кстати, именно поэтому не подерживается GIF - нет в библиотеки функции получения размеров (в пикселях) этого формата
libxlsxwriter for Clarion
Добавлено: 19 Январь 2018, 13:01
RaFaeL
Добавил разрывы страниц при печати
Обновил шапку
libxlsxwriter for Clarion
Добавлено: 21 Январь 2018, 2:32
RaFaeL
Исправил пару недочетов (не выводились секунды, не всегда выводился черный цвет в графики), немного подкорректировал имена внутренних типизированных объектов чтобы минимизировать возможные конфликты
Обновил шапку
На этом, думаю, пауза до обновления библиотеки
libxlsxwriter for Clarion
Добавлено: 23 Январь 2018, 15:18
morkovin
Всё заработало! Использую вариант инициализации: xlsx xlsxwriter
В моей DLL:

- 2018-01-23 15-00-34.png (2.02 КБ) 2645 просмотров
Global DLL:
Вложение 2018-01-23 15-03-24.png больше недоступно
morkovin писал(а): 18 Январь 2018, 11:17
Спасибо!
Заработало только после перемещения xls-процедуры в глобальную DLL, что не очень удобно. Да, шаблон не помешал бы.
Игорь Столяров писал(а): 18 Январь 2018, 9:49
morkovin писал(а): 18 Январь 2018, 9:43В DLL с подпрограммой? В обе?
В те модули, где XLSXWriter используется. Ну и подключаем в проекте *.lib (иначе вообще не соберётся)
uslugi.jpg
libxlsxwriter for Clarion
Добавлено: 24 Январь 2018, 9:48
Игорь Столяров
Есть какая-то беда с экспортом времени, даже в традиционном формате ...
Код: Выделить всё
Date# = Date(01,09,2018); Time# = DeFormat('22:36:54',@t04)
xlsx.ClearFormat()
! Контролька
err#=xlsx.WriteString(11,10,'Дата: ' & Format(Date#,@d06) & ' Время: ' & Format(Time#,@t04))
xlsx.Format.Picture = '@d06'
xlsx.SetFormat()
err# = xlsx.WriteDateTime(12,10,Date#,0)
xlsx.Format.Picture = '@t04'
xlsx.SetFormat()
err# = xlsx.WriteDateTime(13,10,0,Time#)
Результат вот такой, хотя Microsoft Excel подсвечивает время в ячейке корректно.
libxlsxwriter for Clarion
Добавлено: 24 Январь 2018, 10:35
Игорь Столяров
Решил вопрос с экспортом времени через:
Код: Выделить всё
XLSX.Format.Picture = ''
XLSX.Format.ExcelMask = 'HH:MM:SS'
MyXLSX.SetFormat()
libxlsxwriter for Clarion
Добавлено: 24 Январь 2018, 11:29
RaFaeL
libxlsxwriter for Clarion
Добавлено: 24 Январь 2018, 12:19
Игорь Столяров
Ну извиняйте ...

Это уже слишком сложно для Игоря ...

Я лучше выведу время через любезно предоставленную Вами возможность указать формат в XLSX.Format.ExcelMask
К тому же принудительно врубить разделитесь ":" для формата времени не решает общий вопрос вывода по шаблону времени.

libxlsxwriter for Clarion
Добавлено: 24 Январь 2018, 13:51
RaFaeL
Решает, там просто ошибка, нет значения разделителя по умолчанию, он может меняться, если в шаблоне указан альтернативный
libxlsxwriter for Clarion
Добавлено: 24 Январь 2018, 14:27
finsoftrz
Игорь, не надоело еще вручную бланки делать? Это ведь очень трудоемко...
libxlsxwriter for Clarion
Добавлено: 24 Январь 2018, 15:44
Игорь Столяров
finsoftrz писал(а): 24 Январь 2018, 14:27Игорь, не надоело еще вручную бланки делать? Это ведь очень трудоемко...
А что, современной науке уже известны другие способы ?

Расскажите немедленно !

libxlsxwriter for Clarion
Добавлено: 24 Январь 2018, 16:02
finsoftrz
Я потихоньку доделываю для своего класса визуальный режим проектирования бланков. Рисуем бланк в excel/calc, транслируем его в некий промежуточный формат, который легко разбирается кларионовским приложением. В приложении только вывести секцию и присоединить секцию. Все форматирование, тексты, формулы и т.п. подтягиваются автоматически из бланка (файла в промежуточном формате). Аналогичная схема много лет уже работает для вывода в xls, для xlsx похоже.
libxlsxwriter for Clarion
Добавлено: 24 Январь 2018, 16:11
Игорь Столяров
finsoftrz писал(а): 24 Январь 2018, 16:02Все форматирование, тексты, формулы и т.п. подтягиваются автоматически из бланка
В принципе да, но если конкретно: то зачем ?
Если Вы не исключаете из процесса Microsoft Excel (или бесплатный аналог), то зачем все эти конвертации ?
Не проще ли просто втянуть и распарсить бланк через OLE ? И пользователь может легко и понятно его редактировать.
А далее уже заполнить бланк данными через XLSXWriter (или Ваш аналог) и создать готовый отчёт.
libxlsxwriter for Clarion
Добавлено: 24 Январь 2018, 16:30
finsoftrz
Excel/Calc используются только на этапе разработки бланка. При формировании отчета они не нужны. Пользователи сами редко делают бланки, это инструмент для себя. А так, да, можно вытягивать информацию и через ole. Судя по опыту работы с подобной схемой для xls, по скорости разработки форм и по скорости формирования отчетов у пользователей мы спокойно делаем встроенный построитель отчетов в 1с, а у них он считается жемчужиной системы.