Страница 39 из 61

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

Добавлено: 18 Май 2018, 10:10
kreator
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 пишется единица.

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

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

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)
        
        ! и т.д.        

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

Добавлено: 27 Июнь 2018, 17:29
vic7tar
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();
}

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

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

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

libxlsxwriter for Clarion

Добавлено: 28 Июнь 2018, 7:52
RaFaeL
Я не буду править исходный код библиотеки
Но вы можете собрать себе свой вариант и заменить dll