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 КБ) 985 скачиваний
Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8024
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 94 раза
libxlsxwriter for Clarion
Таки это же надо сообразить …
Во всех примерах (в т.ч. и "русском" Microsoft Excel) в маске формата, ПЕРЕД суммой стоит символ валюты: $
Кто же знал, что она подлая, будет его заменять на символ "рупь" да еще переносить его после суммы …
Эт только методом тыка познаётся.

Make Clarion Great Again ! 
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Я о том, что если откроете файл в винде с американскими региональными настройками, то отобразятся доллары, от чего могут возникнуть нюансы
- Игорь Столяров
- Ветеран движения
- Сообщения: 8024
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 94 раза
libxlsxwriter for Clarion
Я ж с того и начал … Если задавать маску ячейки "'#,##0.00 Р;[Red]#,##0.00 Р'" - то везде будет рупь,
но я не знаю как из Clarion записать символ рубля … Если задавать через номер встроенного формата -
то с символом национальной валюты проблем нет, но могут быть нюансы в зависимости от локализации.
В общем, нет полного сщастия.

Make Clarion Great Again ! 
- Дед Пахом
- Старичок
- Сообщения: 3285
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 48 раз
- Контактная информация:
libxlsxwriter for Clarion
А нельзя вызвать встроенную в Excel функцию UNICHAR, как-то так:
где 8381 - код рубля?
Код: Выделить всё
#,##0.00 UNICHAR(8381);[Red]#,##0.00 UNICHAR(8381)
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 8024
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 94 раза
libxlsxwriter for Clarion
Не хочет она так. Совсем … Видимо в маске формата функции не работают, это же не формула ...
Make Clarion Great Again ! 
- Дед Пахом
- Старичок
- Сообщения: 3285
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 48 раз
- Контактная информация:
libxlsxwriter for Clarion
А если libxlsxwriter работает в UTF-8, можно передать рубль так:
где <0eh,02h,08h,02h,0bh,0dh> символ рубля в utf-8.
Код: Выделить всё
'#,##0.00 <0eh,02h,08h,02h,0bh,0dh>;[Red]#,##0.00 <0eh,02h,08h,02h,0bh,0dh>'
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 8024
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 94 раза
libxlsxwriter for Clarion
Вот и я, что-то подобное пытался прикрутить … Не хочет оно так. 

Make Clarion Great Again ! 
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Там надо передать нечто, что при конвертации из 1251 в UTF-8 даст этот набор символов
- Дед Пахом
- Старичок
- Сообщения: 3285
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 48 раз
- Контактная информация:
libxlsxwriter for Clarion
Для очистки совести надо проверить <0e2h,082h,0bdh>, но думаю, тоже не сработает.
А вот этот пример https://libxlsxwriter.github.io/utf8_8c-example.html что означает?
А вот этот пример https://libxlsxwriter.github.io/utf8_8c-example.html что означает?
С уважением, ДП
- Губин Игорь
- Шубуршун
- Сообщения: 2578
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
libxlsxwriter for Clarion
Предлагаю в xlsxwriter.inc и clw заменить
на
Это будет гарантировать от конфликтов с похожими наименованиями у пользователя
Код: Выделить всё
MODULE('xlsxwriter.clw')
FormDateTime(*XLSX:datetime dt_,LONG date_,LONG time_)
FormLine(*XLSX:chart_line_ line_,<LONG color_>,<BYTE none_>,<REAL width_>,<BYTE dash_type_>,<BYTE transparency_>)
FormFill(*XLSX:chart_fill fill_,<LONG color_>,<BYTE none_>,<BYTE transparency_>)
FormFont(*XLSX:chart_font font_,<REAL size_>,<LONG style_>,<LONG rotation_>,<LONG color_>)
RGBColor(LONG color),LONG
GetSystemColor(LONG Color),LONG
END
Код: Выделить всё
MODULE('xlsxwriter.clw')
XLSX:FormDateTime(*XLSX:datetime dt_,LONG date_,LONG time_)
XLSX:FormLine(*XLSX:chart_line_ line_,<LONG color_>,<BYTE none_>,<REAL width_>,<BYTE dash_type_>,<BYTE transparency_>)
XLSX:FormFill(*XLSX:chart_fill fill_,<LONG color_>,<BYTE none_>,<BYTE transparency_>)
XLSX:FormFont(*XLSX:chart_font font_,<REAL size_>,<LONG style_>,<LONG rotation_>,<LONG color_>)
XLSX:RGBColor(LONG color),LONG
XLSX:GetSystemColor(LONG Color),LONG
END
Последний раз редактировалось Губин Игорь 11 Февраль 2019, 15:36, всего редактировалось 1 раз.
Это я только кажусь дураком! На самом деле я полный идиот!
- Губин Игорь
- Шубуршун
- Сообщения: 2578
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 3 раза
- Поблагодарили: 26 раз
libxlsxwriter for Clarion
Было бы хорошо, но уже поздно, использовать при вызове функций порядок переменных аналогичный dExcel.
А то приходится переписывать кучу всего

Это я только кажусь дураком! На самом деле я полный идиот!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1411
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 12 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Никогда не пользовались. Порядок переменных приближен к оригинальной библиотеке, где это возможно, чтобы не писать свою документацию )Было бы хорошо, но уже поздно, использовать при вызове функций порядок переменных аналогичный dExcel.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8024
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 94 раза
libxlsxwriter for Clarion
Напишите свой subclass вызова методов XLSXWriter в удобном Вам виде для замены (как в dExcel, цеExcel и т.д.)Губин Игорь писал(а): 11 Февраль 2019, 15:35при вызове функций порядок переменных аналогичный dExcel

Мы ниже это обсуждали. Я так делал при переводе копипастом кода отчётов с OLE Excel …

Make Clarion Great Again ! 