libxlsxwriter for Clarion
Модератор: Дед Пахом
					Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
	При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 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 КБ) 1930 скачиваний
 
 
					Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
									
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Есть интересная особенность в работе библиотеки, а может быть и обёртки …
Задача: вывести в строке текст с переносом (Wrap = True), но при этом установить фиксированную высоту строки.
Всё работает, и можно установить любую высоту строки .... кроме значения 15 (XLSX:DEF_ROW_HEIGHT).
При принудительной установке высоты строки = 15, её реальная высота будет всегда устанавливаться по тексту.
			
			
									
						Задача: вывести в строке текст с переносом (Wrap = True), но при этом установить фиксированную высоту строки.
Всё работает, и можно установить любую высоту строки .... кроме значения 15 (XLSX:DEF_ROW_HEIGHT).
При принудительной установке высоты строки = 15, её реальная высота будет всегда устанавливаться по тексту.
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Через Microsoft Excel конечно можно, но это ведь уже пост-обработка XLSX, как и WRAP объединённых ячеек …RaFaeL писал(а): 04 Июль 2018, 13:50А через эксель можно так установить? Если да, то открывайте issue
Т.е. совсем другая история. Это не проблема, просто забавно.
Код: Выделить всё
  ErrorCode = MyXLSX.SetRow(Loc:Row,Choose(MyRowHeight = XLSX:DEF_ROW_HEIGHT,15.1,MyRowHeight))
Самое интересное, что в этом случае выставляется высота строки: 15.00 !
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
libxlsxwriter for Clarion
Обновил версию в шапке. Собрано на актуальном релизе библиотеки. Добавлен метод выравнивания подписей осей графиков
			
			
									
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
libxlsxwriter for Clarion
Добавил chartsheets (не знаю как переводится). Шапку пока не обновлял, так как пока не все методы доступны в библиотеке
Внимание: изменены некоторые методы и свойства класса, придется кое-что подправить
			
			
									
						Внимание: изменены некоторые методы и свойства класса, придется кое-что подправить
- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
libxlsxwriter for Clarion
Обнаружил проблему, при которой мог быть крэш при освобождении памяти класса. Никто не сталкивался? Странно )) Версии в шапке, кстати, тоже касается
			
			
									
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Таки нормально !
Код: Выделить всё
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() ...
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
libxlsxwriter for Clarion
Так память все равно освобождается рано или поздно, на закрытие процедуры или приложения. Другое дело, что у меня крэш проявлялся только после работы с графиками (возможно, это пока мало кто использует, я стараюсь по максимуму и уже встроил в проект chartsheets)
			
			
									
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
libxlsxwriter for Clarion
Обновил версию в шапке, собрано на 0.8.3
https://libxlsxwriter.github.io/workshe ... 8999db5afa
Вот это нужно кому-нибудь? Пока не делал
			
			
									
						https://libxlsxwriter.github.io/workshe ... 8999db5afa
Вот это нужно кому-нибудь? Пока не делал
- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Я заранее извиняюсь, за неформализованный вопрос, просто не могу разобраться в чём проблема … 
Экспорт простых сумм. Что бы было красиво - задаём маску:
При некоторых сочетаниях с прорисовкой рамки ячейки (не могу пока чётко отловить) ВАРИАНТ 1 выбивает 
маски всех (!!!) чисел не только на листе, но и в книге. От региональных настроек не зависит. Какая-то мистика.
То ли вариант маски 1 в принципе неправильный, но я брал его из TabogaExcel …
Вариант 2 вроде бы работает … но как-то хочется понять в чём проблема.
			
			
									
						Экспорт простых сумм. Что бы было красиво - задаём маску:
Код: Выделить всё
    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 в принципе неправильный, но я брал его из TabogaExcel …
Вариант 2 вроде бы работает … но как-то хочется понять в чём проблема.
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Ээээ … а дело-то интересней оказалось. 
Маска "Вариант 1" козлит только на компьютерах, где на прошлой неделе накатилось обновление Windows 10 1809 …
Также поехали форматы масок с процентами '#0%;-#0%' …
И это независимо от программы Microsoft Excel / OpenOffice Calc
			
			
									
						Маска "Вариант 1" козлит только на компьютерах, где на прошлой неделе накатилось обновление Windows 10 1809 …
Также поехали форматы масок с процентами '#0%;-#0%' …
И это независимо от программы Microsoft Excel / OpenOffice Calc
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- 
				kreator
 - ✯ Ветеран ✯
 - Сообщения: 5235
 - Зарегистрирован: 28 Май 2009, 15:54
 - Откуда: Москва
 - Благодарил (а): 11 раз
 - Поблагодарили: 26 раз
 
libxlsxwriter for Clarion
Вроде MS отозвала обновление. Кто-то у вас из клиентов сильно продвинутый?Игорь Столяров писал(а): 09 Октябрь 2018, 11:08 Маска "Вариант 1" козлит только на компьютерах, где на прошлой неделе накатилось обновление Windows 10 1809 …![]()
We are hard at work… for you.   
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Насчёт отозвала - не знаю. Я проблему вижу у себя. И Win10 1809 сама установилась, штатно ...kreator писал(а): 09 Октябрь 2018, 11:15Вроде MS отозвала обновление. Кто-то у вас из клиентов сильно продвинутый?
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- 
				kreator
 - ✯ Ветеран ✯
 - Сообщения: 5235
 - Зарегистрирован: 28 Май 2009, 15:54
 - Откуда: Москва
 - Благодарил (а): 11 раз
 - Поблагодарили: 26 раз
 
libxlsxwriter for Clarion
Надо бы подстраховаться - http://www.cnews.ru/news/top/2018-10-08 ... yudalennye. В конторе что-то не то происходит.
			
			
									
						We are hard at work… for you.   
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Проблему локализовал, маски чисел вроде бы не при чём, хотя осадок непоняток с их форматами остался.
Замена маски процентов решает вопрос:
			
			
									
						Замена маски процентов решает вопрос:
Код: Выделить всё
  !MyXLSX.Format.ExcelMask = '#0%;-#0%'   ! Начала козлить в Win10 1809
   MyXLSX.Format.ExcelMask = '0%;-0%'       ! Работает штатно, проблем нет
   MyXLSX.SetFormat()
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						