libxlsxwriter for Clarion
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1389
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 9 раз
- Поблагодарили: 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 КБ) 368 скачиваний
Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1389
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 9 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Из документации "It should be noted that the split is specified at the top or left of a cell"
Т.е. чтобы заморозить первую строку надо передать 2, сплит появится над 2й строкой
Т.е. чтобы заморозить первую строку надо передать 2, сплит появится над 2й строкой
-
- ✯ Ветеран ✯
- Сообщения: 5080
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 23 раза
libxlsxwriter for Clarion
По крайней мере это нелогично. На 99% уверен, что в xml пишется единица.
We are hard at work… for you.
libxlsxwriter for Clarion
Прошу добавить в пример прорисовку частичных бордюров (низ, верх, низ и правый и т.п.)
Любить и обещать ничего не стоит
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1389
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 9 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Честно говоря совершенно некогда сейчас сабжем заниматься, думаю Игорь Столяров вам может сделать пример )
- Игорь Столяров
- Ветеран движения
- Сообщения: 7680
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 68 раз
libxlsxwriter for Clarion
Да всё есть в этой ветке форума … Вот пример кода просто из головы:
Код: Выделить всё
XLSX.ClearFormat()
! Рисуем верхнюю и нижнюю полоски обрамления ячейки
XLSX.Format.Bottom.Format = XLSX:BORDER_DOUBLE
XLSX.Format.Top.Format = XLSX:BORDER_DOUBLE
!XLSX.Format.Left.Format = XLSX:BORDER_DOUBLE
!XLSX.Format.Right.Format = XLSX:BORDER_DOUBLE
XLSX.SetFormat()
XLSX.WriteBlank(2,2)
! Убираем прорисовку верхней полоски
XLSX.Format.Top.Format = XLSX:NoBorder
XLSX.SetFormat()
XLSX.WriteBlank(4,4)
! и т.д.
Make Clarion Great Again !
libxlsxwriter for Clarion
Спасибо за примерИгорь Столяров писал(а): ↑23 Май 2018, 23:42Да всё есть в этой ветке форума …
Любить и обещать ничего не стоит
libxlsxwriter for Clarion
Решил попробовать сей замечательный продукт.
У меня установлен MS Excel 2003.
Практически все основное , что нужно было, заработало.
За исключением!
Не работает пересчет формул при открытии файла! Хотя в настройках галка Автоматически взведена.
Если я захожу в ячейку и ничего не меняя нажимаю Enter, то все отлично начинает пересчитываться.
Подскажите, плиз, куда копать.
У меня установлен MS Excel 2003.
Практически все основное , что нужно было, заработало.
За исключением!
Не работает пересчет формул при открытии файла! Хотя в настройках галка Автоматически взведена.
Если я захожу в ячейку и ничего не меняя нажимаю Enter, то все отлично начинает пересчитываться.
Подскажите, плиз, куда копать.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7680
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 68 раз
libxlsxwriter for Clarion
В документацию: https://libxlsxwriter.github.io/workshe ... 9c4a5867af
Описание процедуры worksheet_write_formula_num() - там есть про это.
И использовать расширенный вариант метода XLSX.WriteFormula().
Make Clarion Great Again !
libxlsxwriter for Clarion
Огромное спасибо за подсказку!Игорь Столяров писал(а): ↑25 Июнь 2018, 17:05В документацию: https://libxlsxwriter.github.io/workshe ... 9c4a5867af
Описание процедуры worksheet_write_formula_num() - там есть про это.
И использовать расширенный вариант метода XLSX.WriteFormula().
Libxlsxwriter doesn't calculate the value of a formula and instead stores the value 0 as the formula result. It then sets a global flag in the XLSX file to say that all formulas and functions should be recalculated when the file is opened.
This is the method recommended in the Excel documentation and in general it works fine with spreadsheet applications.
However, applications that don't have a facility to calculate formulas, such as Excel Viewer, or some mobile applications will only display the 0 results.
Вот оно как оказывается!
У меня в Excel'е при открытии автоматически формулы не пересчитываются.
Приходится считать самому и подставлять значения
- Игорь Столяров
- Ветеран движения
- Сообщения: 7680
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 68 раз
libxlsxwriter for Clarion
Я конечно был удивлён, что Microsoft Excel 2003 вообще поддерживает формат XLSX.PavelNK писал(а): ↑25 Июнь 2018, 20:31У меня в Excel'е при открытии автоматически формулы не пересчитываются
До этого момента считал, открытые форматы DOCX и XLSX появились в Microsoft Office 2007 ...
Но в любом случае, уже можно побаловать себя обновлением офисного пакета ...
Make Clarion Great Again !
libxlsxwriter for Clarion
Предлагаю автору врапера (RaFael) вот такое изменение в workbook.c:
Код: Выделить всё
STATIC void
_write_calc_pr(lxw_workbook *self)
{
struct xml_attribute_list attributes;
struct xml_attribute *attribute;
LXW_INIT_ATTRIBUTES();
LXW_PUSH_ATTRIBUTES_STR("calcId", "124519");
- LXW_PUSH_ATTRIBUTES_STR("fullCalcOnLoad", "1");
+ LXW_PUSH_ATTRIBUTES_STR("calcCompleted", "0");
lxw_xml_empty_tag(self->file, "calcPr", &attributes);
LXW_FREE_ATTRIBUTES();
}
C10, Win10x64
- Игорь Столяров
- Ветеран движения
- Сообщения: 7680
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 68 раз
libxlsxwriter for Clarion
А Вы не хотите, такие вещи предложить вот здесь: https://github.com/jmcnamara/libxlsxwriter/issues
Ибо нужно хорошо представлять результат таких действий и их последствия в комплексе ...
Make Clarion Great Again !
libxlsxwriter for Clarion
Нет, не хочу. А какие тут могут быть последствия, да еще и в комплексе?
Параметр fullCalcOnLoad вообще можно выкинуть.
Параметр fullCalcOnLoad вообще можно выкинуть.
Последний раз редактировалось vic7tar 27 Июнь 2018, 21:45, всего редактировалось 1 раз.
C10, Win10x64
- Игорь Столяров
- Ветеран движения
- Сообщения: 7680
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 26 раз
- Поблагодарили: 68 раз
libxlsxwriter for Clarion
Конкретно в данном случае - я конечно же не знаю ...
Но сама по себе спецификация формата XLSX уже имеет историю, и поэтому нужно смотреть реакцию Microsoft Excel
разных поколений, а также бесплатных офисных пакетов, многочисленных просмотрщиков XLSX и т.д.
Это и есть проверка в комплексе. Возможно Вы всё это и так уже проверили.
В указанной мною группе разработки, как раз такие вопросы и обсуждаются. Поэтому я и предложил.
Make Clarion Great Again !
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1389
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 9 раз
- Поблагодарили: 2 раза
- Контактная информация:
libxlsxwriter for Clarion
Я не буду править исходный код библиотеки
Но вы можете собрать себе свой вариант и заменить dll
Но вы можете собрать себе свой вариант и заменить dll