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

libxlsxwriter for Clarion

Добавлено: 04 Июль 2018, 9:31
Игорь Столяров
Есть интересная особенность в работе библиотеки, а может быть и обёртки …
Задача: вывести в строке текст с переносом (Wrap = True), но при этом установить фиксированную высоту строки.

Всё работает, и можно установить любую высоту строки .... кроме значения 15 (XLSX:DEF_ROW_HEIGHT).
При принудительной установке высоты строки = 15, её реальная высота будет всегда устанавливаться по тексту. ;)

libxlsxwriter for Clarion

Добавлено: 04 Июль 2018, 13:50
RaFaeL
А через эксель можно так установить? Если да, то открывайте issue

libxlsxwriter for Clarion

Добавлено: 04 Июль 2018, 14:03
Игорь Столяров
RaFaeL писал(а): 04 Июль 2018, 13:50А через эксель можно так установить? Если да, то открывайте issue
Через Microsoft Excel конечно можно, но это ведь уже пост-обработка XLSX, как и WRAP объединённых ячеек …
Т.е. совсем другая история. Это не проблема, просто забавно. :) Я сделал вот так:

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

  ErrorCode = MyXLSX.SetRow(Loc:Row,Choose(MyRowHeight = XLSX:DEF_ROW_HEIGHT,15.1,MyRowHeight))

Самое интересное, что в этом случае выставляется высота строки: 15.00 ! :)

libxlsxwriter for Clarion

Добавлено: 02 Сентябрь 2018, 2:20
RaFaeL
Обновил версию в шапке. Собрано на актуальном релизе библиотеки. Добавлен метод выравнивания подписей осей графиков

libxlsxwriter for Clarion

Добавлено: 13 Сентябрь 2018, 23:16
RaFaeL
Добавил chartsheets (не знаю как переводится). Шапку пока не обновлял, так как пока не все методы доступны в библиотеке
Внимание: изменены некоторые методы и свойства класса, придется кое-что подправить

libxlsxwriter for Clarion

Добавлено: 15 Сентябрь 2018, 23:58
RaFaeL
Обнаружил проблему, при которой мог быть крэш при освобождении памяти класса. Никто не сталкивался? Странно )) Версии в шапке, кстати, тоже касается

libxlsxwriter for Clarion

Добавлено: 16 Сентябрь 2018, 7:30
Игорь Столяров
RaFaeL писал(а): 15 Сентябрь 2018, 23:58Никто не сталкивался? Странно ))
Таки нормально ! ;) Дело в том, что схема с распределением памяти, предлагаемая в авторском примере:

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

xlsx   &xlsxwriter
...
   Code
   xlsx &=NEW(xlsxwriter)
   xlsx.NewWorkbook('TheFile.xlsx')
   ...
   If xlsx.CloseWorkbook() ...    
   dispose(xlsx)
медленная и потенциально конфликтная. Я уже говорил, что использую упрощённый вариант:

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

MyXLSX    xlsxwriter
…
   Code
   xlsx.NewWorkbook('TheFile.xlsx')
   ...
   If xlsx.CloseWorkbook() ...
и потому нет никаких проблем. :)

libxlsxwriter for Clarion

Добавлено: 16 Сентябрь 2018, 10:30
RaFaeL
Так память все равно освобождается рано или поздно, на закрытие процедуры или приложения. Другое дело, что у меня крэш проявлялся только после работы с графиками (возможно, это пока мало кто использует, я стараюсь по максимуму и уже встроил в проект chartsheets)

libxlsxwriter for Clarion

Добавлено: 02 Октябрь 2018, 20:43
RaFaeL
Обновил версию в шапке, собрано на 0.8.3

https://libxlsxwriter.github.io/workshe ... 8999db5afa
Вот это нужно кому-нибудь? Пока не делал

libxlsxwriter for Clarion

Добавлено: 09 Октябрь 2018, 9:50
Игорь Столяров
Я заранее извиняюсь, за неформализованный вопрос, просто не могу разобраться в чём проблема … :(

Экспорт простых сумм. Что бы было красиво - задаём маску:

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

    MyXLSX.ClearFormat()
    MyXLSX.Format.Align     = XLSX:ALIGN_RIGHT
    MyXLSX.Format.Picture   = ''
   !MyXLSX.Format.ExcelMask = '#,##0.00;-#,##0.00'    ! ВАРИАНТ 1
    MyXLSX.Format.ExcelMask = '# ##0.00;-# ##0.00'     ! ВАРИАНТ 2 
    MyXLSX.SetFormat()

    MyXLSX.Format.WriteNumber( ....
При некоторых сочетаниях с прорисовкой рамки ячейки (не могу пока чётко отловить) ВАРИАНТ 1 выбивает
маски всех (!!!) чисел не только на листе, но и в книге. От региональных настроек не зависит. Какая-то мистика. :(
То ли вариант маски 1 в принципе неправильный, но я брал его из TabogaExcel …

Вариант 2 вроде бы работает … но как-то хочется понять в чём проблема.

libxlsxwriter for Clarion

Добавлено: 09 Октябрь 2018, 11:08
Игорь Столяров
Ээээ … а дело-то интересней оказалось.
Маска "Вариант 1" козлит только на компьютерах, где на прошлой неделе накатилось обновление Windows 10 1809 … :(
Также поехали форматы масок с процентами '#0%;-#0%' … :(

И это независимо от программы Microsoft Excel / OpenOffice Calc

libxlsxwriter for Clarion

Добавлено: 09 Октябрь 2018, 11:15
kreator
Игорь Столяров писал(а): 09 Октябрь 2018, 11:08 Маска "Вариант 1" козлит только на компьютерах, где на прошлой неделе накатилось обновление Windows 10 1809 … :(
Вроде MS отозвала обновление. Кто-то у вас из клиентов сильно продвинутый?

libxlsxwriter for Clarion

Добавлено: 09 Октябрь 2018, 11:32
Игорь Столяров
kreator писал(а): 09 Октябрь 2018, 11:15Вроде MS отозвала обновление. Кто-то у вас из клиентов сильно продвинутый?
Насчёт отозвала - не знаю. Я проблему вижу у себя. И Win10 1809 сама установилась, штатно ...

libxlsxwriter for Clarion

Добавлено: 09 Октябрь 2018, 11:45
kreator
Надо бы подстраховаться - http://www.cnews.ru/news/top/2018-10-08 ... yudalennye. В конторе что-то не то происходит.

libxlsxwriter for Clarion

Добавлено: 09 Октябрь 2018, 11:52
Игорь Столяров
Проблему локализовал, маски чисел вроде бы не при чём, хотя осадок непоняток с их форматами остался.
Замена маски процентов решает вопрос:

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

  !MyXLSX.Format.ExcelMask = '#0%;-#0%'   ! Начала козлить в Win10 1809
   MyXLSX.Format.ExcelMask = '0%;-0%'       ! Работает штатно, проблем нет
   MyXLSX.SetFormat()