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 КБ) 1933 скачивания
 
 
					Последний раз редактировалось RaFaeL 30 Декабрь 2021, 19:19, всего редактировалось 40 раз.
									
			
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
libxlsxwriter for Clarion
Если я правильно понял что написано в мануале, то это всего лишь пометка выделенных ячеек, а не групповое форматирование
			
			
									
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Да, я это тоже видел ...
Тогда получается, что установленный формат действует только на методы WriteXXXXXXX ?
Судя по описанию, методы форматирования применяются к ячейкам, a worksheet_set_selection()
как раз эти ячейки и определяет ...
Ну не может быть такого, что нельзя для области ячеек установить шрифт, цвет и т.д.
			
			
									
						Тогда получается, что установленный формат действует только на методы WriteXXXXXXX ?
Судя по описанию, методы форматирования применяются к ячейкам, a worksheet_set_selection()
как раз эти ячейки и определяет ...
Ну не может быть такого, что нельзя для области ячеек установить шрифт, цвет и т.д.
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
libxlsxwriter for Clarion
Когда библиотеку встраивал в проект, переделывал выгрузку на форматирование вместе с записью вместо "сначала выгрузили, потом отформатировали". Кстати, шаблон от Taboga аналогично работает
https://libxlsxwriter.github.io/faq.html
Q. Can I apply a format to a range of cells in one go?
Currently no. However, it is a planned features to allow cell formats and data to be written separately.
			
			
									
						https://libxlsxwriter.github.io/faq.html
Q. Can I apply a format to a range of cells in one go?
Currently no. However, it is a planned features to allow cell formats and data to be written separately.
- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Но это не всегда возможно ...
Например я хочу выгрузить по товарам несколько цен и потом закрасить минимум / максимум в каждой колонке.
Ну или тогда придётся сначала эту таблицу формировать в памяти, что бы на момент записи ячеек уже знать экстремумы
значений в каждой колонке по всей таблице ...
Понял !RaFaeL писал(а): 17 Декабрь 2017, 10:43 Currently no. However, it is a planned features to allow cell formats and data to be written separately.
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Конечно идеология построения отчёта в LibXLSSWriter должна быть пересмотрена, относительно OLE ....
Но зато, кроме известных плюсов, обнаруживаются и неожиданные бонусы.
Например, нет зависимости разделителя дробных разрядов чисел от региональных настроек Windows.
Вопрос: можно ли посмотреть блок библиотеки для работы с форматами (файл tpicture.inc) ?
Заранее спасибо !
			
			
									
						Но зато, кроме известных плюсов, обнаруживаются и неожиданные бонусы.
Например, нет зависимости разделителя дробных разрядов чисел от региональных настроек Windows.
Вопрос: можно ли посмотреть блок библиотеки для работы с форматами (файл tpicture.inc) ?
Заранее спасибо !
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Почему-то не могу подключить работу с форматированием ... 
Вроде бы все Defines Project выставил правильно, но упорно не активируется компиляция именно в xlsxWriter.inc
Ничего не понимаю. Посмотрите пожалуйста в чём косяк, на штатном примере библиотеки.
(прикреплено к сообщению)
			
							Вроде бы все Defines Project выставил правильно, но упорно не активируется компиляция именно в xlsxWriter.inc
Ничего не понимаю. Посмотрите пожалуйста в чём косяк, на штатном примере библиотеки.
(прикреплено к сообщению)
- Вложения
 - 
			
		
		
				
- help_me.zip
 - (33.57 КБ) 340 скачиваний
 
 
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
libxlsxwriter for Clarion
Попробуйте новый вариант, в заглавном посте обновил. Там немного неправильно было. В примере есть комментарий
			
			
									
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Ура ! Таки заработало. Спасибо !
Но видимо существуют некорые ньюансы, не срабатывает формат c бланкированием на числах.
Например:
Код: Выделить всё
            xlsx.ClearFormat()
            xlsx.Format.Picture='@n12.2b'
            xlsx.SetFormat()
            err#=xlsx.WriteNumber(1,5,0)
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Нет. Но вопрос можно задать по другому: как применить формат к ячейке без вывода данных.
Например, формируем бланк заказа, с пустой колонкой в которой будет указывается кол-во в формате "0.000"
Спасибо за направление, разобрался.
Код: Выделить всё
            xlsx.ClearFormat()
            xlsx.Format.Picture='@n_13.3'
            xlsx.SetFormat()
            err#=xlsx.WriteBlank(1,5)
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- 
				kreator
 - ✯ Ветеран ✯
 - Сообщения: 5235
 - Зарегистрирован: 28 Май 2009, 15:54
 - Откуда: Москва
 - Благодарил (а): 11 раз
 - Поблагодарили: 26 раз
 
libxlsxwriter for Clarion
Вообще есть. Вот так, например, - "0,00;;;@".
We are hard at work… for you.   
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Возможно, это только для меня "открытие", но на всякий случай напишу ... 
Calc из пакета Libre Office полноценно работает с XLSX файлами: открывает, сохраняет и т.д.
(в отличии от Calc из пакета Apache OpenOffice, который XLSX только медленно читает с конвертацией).
 
И в принципе, это решает задачу полноценной работы с XLSX отчётами вообще без коммерческого Microsoft Excel.
Да и генерация отчётов в ODS специально для OO Calc похоже теперь тоже не нужна особо ...
			
			
									
						Calc из пакета Libre Office полноценно работает с XLSX файлами: открывает, сохраняет и т.д.
(в отличии от Calc из пакета Apache OpenOffice, который XLSX только медленно читает с конвертацией).
И в принципе, это решает задачу полноценной работы с XLSX отчётами вообще без коммерческого Microsoft Excel.
Да и генерация отчётов в ODS специально для OO Calc похоже теперь тоже не нужна особо ...
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- finsoftrz
 - ✯ Ветеран ✯
 - Сообщения: 5567
 - Зарегистрирован: 06 Ноябрь 2014, 12:48
 - Благодарил (а): 18 раз
 - Поблагодарили: 78 раз
 
libxlsxwriter for Clarion
На перспективу, наверно, стоит иметь ввиду xlsx. Я глянул, что создается внутри zip архива. В общем, все находится, можно и паровозиком прицепиться и портировать на чистый кларион. Архивировать можно и 7z. Тут есть забавная тонкость. Если разархивировать xlsx файл через 7z, то винда автоматически меняет кодировку файлов. То есть, если хотим завернуть обратно, надо поменять кодировку взад на utf8. Например, с помощью xml notepad. Им же можно пользоваться, чтобы автоматически привел к читабельному виду xml файлы, которые сжаты без разделителей строк.
			
			
									
						C6/C12, ШВС, tps/btrieve.
			
						- Игорь Столяров
 - Ветеран движения
 - Сообщения: 8269
 - Зарегистрирован: 07 Июль 2005, 10:19
 - Откуда: г. Ростов-на-ДоМу
 - Благодарил (а): 34 раза
 - Поблагодарили: 106 раз
 
libxlsxwriter for Clarion
Подскажите пожалуйста, а есть ли в LibXLSX возможность выполнить группировку строк ?
Т.е. то, что в OLE делается вот так:
			
			
									
						Т.е. то, что в OLE делается вот так:
Код: Выделить всё
     Object{MyXLS & 'Rows("1:50").Group'}     
За теми, кто отстал, не возвращаться ! 
 Кодекс
			
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
libxlsxwriter for Clarion
Я так понимаю это уровень в https://libxlsxwriter.github.io/structl ... ml#details но currently not supported. Ждем-с.
			
			
									
						