libxlsxwriter for Clarion

Программы на Clarion, шаблоны, библиотеки и пр.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
RaFaeL
Ветеран
Сообщения: 679
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL » 17 Май 2018, 23:15

Из документации "It should be noted that the split is specified at the top or left of a cell"
Т.е. чтобы заморозить первую строку надо передать 2, сплит появится над 2й строкой

kreator
Ветеран
Сообщения: 2750
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

libxlsxwriter for Clarion

Сообщение kreator » 18 Май 2018, 10:10

RaFaeL писал(а):
17 Май 2018, 23:15
Из документации "It should be noted that the split is specified at the top or left of a cell"
Т.е. чтобы заморозить первую строку надо передать 2, сплит появится над 2й строкой
По крайней мере это нелогично. На 99% уверен, что в xml пишется единица.
С уважением, Kreator.

Аватара пользователя
Артур
Старожил
Сообщения: 292
Зарегистрирован: 01 Июнь 2006, 11:33
Откуда: Новороссийск

libxlsxwriter for Clarion

Сообщение Артур » 23 Май 2018, 12:54

RaFaeL писал(а):
31 Январь 2018, 17:11
"To border" - "окаймлять, граничить, обшивать"
No border - не окаймлять )) (перевод с russian english)
(правильнее конечно будет do not border)
Прошу добавить в пример прорисовку частичных бордюров (низ, верх, низ и правый и т.п.)
Любить и обещать ничего не стоит

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 679
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL » 23 Май 2018, 23:20

Честно говоря совершенно некогда сейчас сабжем заниматься, думаю Игорь Столяров вам может сделать пример )

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3334
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 23 Май 2018, 23:42

Да всё есть в этой ветке форума … Вот пример кода просто из головы:

Код: Выделить всё

        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)
        
        ! и т.д.        
Вам помочь или не мешать ?

Аватара пользователя
Артур
Старожил
Сообщения: 292
Зарегистрирован: 01 Июнь 2006, 11:33
Откуда: Новороссийск

libxlsxwriter for Clarion

Сообщение Артур » 24 Май 2018, 8:05

Игорь Столяров писал(а):
23 Май 2018, 23:42
Да всё есть в этой ветке форума …
Спасибо за пример
Любить и обещать ничего не стоит

PavelNK
Активист
Сообщения: 185
Зарегистрирован: 15 Март 2011, 8:02

libxlsxwriter for Clarion

Сообщение PavelNK » 25 Июнь 2018, 16:32

Решил попробовать сей замечательный продукт.
У меня установлен MS Excel 2003.
Практически все основное , что нужно было, заработало.
За исключением!
Не работает пересчет формул при открытии файла! Хотя в настройках галка Автоматически взведена.
Если я захожу в ячейку и ничего не меняя нажимаю Enter, то все отлично начинает пересчитываться.
Подскажите, плиз, куда копать.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3334
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 25 Июнь 2018, 17:05

PavelNK писал(а):
25 Июнь 2018, 16:32
Подскажите, плиз, куда копать.
В документацию: https://libxlsxwriter.github.io/workshe ... 9c4a5867af
Описание процедуры worksheet_write_formula_num() - там есть про это.
И использовать расширенный вариант метода XLSX.WriteFormula().
Вам помочь или не мешать ?

PavelNK
Активист
Сообщения: 185
Зарегистрирован: 15 Март 2011, 8:02

libxlsxwriter for Clarion

Сообщение PavelNK » 25 Июнь 2018, 20:31

Игорь Столяров писал(а):
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'е при открытии автоматически формулы не пересчитываются.
Приходится считать самому и подставлять значения :( :( :(

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3334
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 25 Июнь 2018, 20:50

PavelNK писал(а):
25 Июнь 2018, 20:31
У меня в Excel'е при открытии автоматически формулы не пересчитываются
Я конечно был удивлён, что Microsoft Excel 2003 вообще поддерживает формат XLSX.
До этого момента считал, открытые форматы DOCX и XLSX появились в Microsoft Office 2007 ...
Но в любом случае, уже можно побаловать себя обновлением офисного пакета ... ;)
Вам помочь или не мешать ?

Аватара пользователя
vic7tar
Бывалый
Сообщения: 79
Зарегистрирован: 09 Февраль 2017, 20:12

libxlsxwriter for Clarion

Сообщение vic7tar » 27 Июнь 2018, 17:29

PavelNK писал(а):
25 Июнь 2018, 20:31
У меня в Excel'е при открытии автоматически формулы не пересчитываются.
Предлагаю автору врапера (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

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3334
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 27 Июнь 2018, 20:30

vic7tar писал(а):
27 Июнь 2018, 17:29
вот такое изменение в workbook.c
А Вы не хотите, такие вещи предложить вот здесь: https://github.com/jmcnamara/libxlsxwriter/issues
Ибо нужно хорошо представлять результат таких действий и их последствия в комплексе ...
Вам помочь или не мешать ?

Аватара пользователя
vic7tar
Бывалый
Сообщения: 79
Зарегистрирован: 09 Февраль 2017, 20:12

libxlsxwriter for Clarion

Сообщение vic7tar » 27 Июнь 2018, 20:45

Нет, не хочу. А какие тут могут быть последствия, да еще и в комплексе?
Параметр fullCalcOnLoad вообще можно выкинуть.
Последний раз редактировалось vic7tar 27 Июнь 2018, 21:45, всего редактировалось 1 раз.
C10, Win10x64

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3334
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 27 Июнь 2018, 21:19

vic7tar писал(а):
27 Июнь 2018, 20:45
А какие тут могут быть последствия, да еще и в комплексе
Конкретно в данном случае - я конечно же не знаю ...
Но сама по себе спецификация формата XLSX уже имеет историю, и поэтому нужно смотреть реакцию Microsoft Excel
разных поколений, а также бесплатных офисных пакетов, многочисленных просмотрщиков XLSX и т.д.

Это и есть проверка в комплексе. Возможно Вы всё это и так уже проверили.
В указанной мною группе разработки, как раз такие вопросы и обсуждаются. Поэтому я и предложил. :)
Вам помочь или не мешать ?

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 679
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL » 28 Июнь 2018, 7:52

Я не буду править исходный код библиотеки
Но вы можете собрать себе свой вариант и заменить dll

Ответить