Страница 5 из 62
					
				libxlsxwriter for Clarion
				Добавлено: 12 Февраль 2017, 14:06
				 RaFaeL
				Создание файлов Excel (xlsx) без использования Excel на основе проекта libxlsxwriter (
https://libxlsxwriter.github.io). Можно создавать файлы, листы в них, писать данные (текст (в т.ч. русский), число, дата, время), ставить форматирование (цвет, рамки, шрифт, выравнивание, размер), объединять ячейки, фиксировать и скрывать строки и колонки, вставлять изображения, рисовать графики (диаграммы), устанавливать настройки печати и свойства документа. 
Для конвертирования "картинок" форматов используется библиотека Tpicture от Taboga, у кого этого класса нет замените на что-то свое
 
			
					
				libxlsxwriter for Clarion
				Добавлено: 17 Декабрь 2017, 10:15
				 RaFaeL
				Если я правильно понял что написано в мануале, то это всего лишь пометка выделенных ячеек, а не групповое форматирование
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 17 Декабрь 2017, 10:36
				 Игорь Столяров
				Да, я это тоже видел ...
Тогда получается, что установленный формат действует только на методы WriteXXXXXXX ?
Судя по описанию, методы форматирования применяются к ячейкам, a worksheet_set_selection()
как раз эти ячейки и определяет ...
Ну не может быть такого, что нельзя для области ячеек установить шрифт, цвет и т.д. 

 
			
					
				libxlsxwriter for Clarion
				Добавлено: 17 Декабрь 2017, 10:43
				 RaFaeL
				Когда библиотеку встраивал в проект, переделывал выгрузку на форматирование вместе с записью вместо "сначала выгрузили, потом отформатировали". Кстати, шаблон от 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. 
			
					
				libxlsxwriter for Clarion
				Добавлено: 17 Декабрь 2017, 10:51
				 Игорь Столяров
				RaFaeL писал(а): 17 Декабрь 2017, 10:43переделывал выгрузку на форматирование вместе с записью
 
Но это не всегда возможно ... 
Например я хочу выгрузить по товарам несколько цен и потом закрасить минимум / максимум в каждой колонке.
Ну или тогда придётся сначала эту таблицу формировать в памяти, что бы на момент записи ячеек уже знать экстремумы 
значений в каждой колонке по всей таблице ...
RaFaeL писал(а): 17 Декабрь 2017, 10:43
Currently no. However, it is a planned features to allow cell formats and data to be written separately.
 
Понял ! 

 
			
					
				libxlsxwriter for Clarion
				Добавлено: 17 Декабрь 2017, 19:23
				 Игорь Столяров
				Конечно идеология построения отчёта в LibXLSSWriter должна быть пересмотрена, относительно OLE ....
Но зато, кроме известных плюсов, обнаруживаются и неожиданные бонусы. 

Например, нет зависимости разделителя дробных разрядов чисел от региональных настроек Windows.
Вопрос: можно ли посмотреть блок библиотеки для работы с форматами (файл tpicture.inc) ?
Заранее спасибо ! 

 
			
					
				libxlsxwriter for Clarion
				Добавлено: 18 Декабрь 2017, 10:29
				 Игорь Столяров
				Почему-то не могу подключить работу с форматированием ... 

Вроде бы все Defines Project выставил правильно, но упорно не активируется компиляция именно в xlsxWriter.inc
Ничего не понимаю. Посмотрите пожалуйста в чём косяк, на штатном примере библиотеки.
(прикреплено к сообщению)
 
			
					
				libxlsxwriter for Clarion
				Добавлено: 18 Декабрь 2017, 16:50
				 RaFaeL
				Попробуйте новый вариант, в заглавном посте обновил. Там немного неправильно было. В примере есть комментарий
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 18 Декабрь 2017, 22:44
				 Игорь Столяров
				RaFaeL писал(а): 18 Декабрь 2017, 16:50Попробуйте новый вариант,
 
Ура ! Таки заработало. Спасибо ! 

Но видимо существуют некорые ньюансы, не срабатывает формат c бланкированием на числах.
Например:
Код: Выделить всё
            xlsx.ClearFormat()
            xlsx.Format.Picture='@n12.2b'
            xlsx.SetFormat()
            err#=xlsx.WriteNumber(1,5,0)
Упорно выводит "0.00". Так и должно быть ?
 
			
					
				libxlsxwriter for Clarion
				Добавлено: 18 Декабрь 2017, 23:11
				 RaFaeL
				А в Экселе есть вообще формат с бланкированием?
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 19 Декабрь 2017, 7:43
				 Игорь Столяров
				RaFaeL писал(а): 18 Декабрь 2017, 23:11А в Экселе есть вообще формат с бланкированием?
 
Нет. Но вопрос можно задать по другому: как применить формат к ячейке без вывода данных.
Например, формируем бланк заказа, с пустой колонкой в которой будет указывается кол-во в формате "0.000"
Спасибо за направление, разобрался. 

 Нужно привыкать работать без диапазонов. Вот так правильно:
Код: Выделить всё
            xlsx.ClearFormat()
            xlsx.Format.Picture='@n_13.3'
            xlsx.SetFormat()
            err#=xlsx.WriteBlank(1,5)
 
			
					
				libxlsxwriter for Clarion
				Добавлено: 19 Декабрь 2017, 10:49
				 kreator
				RaFaeL писал(а): 18 Декабрь 2017, 23:11
А в Экселе есть вообще формат с бланкированием?
 
Вообще есть. Вот так, например, - "0,00;;;@".
 
			
					
				libxlsxwriter for Clarion
				Добавлено: 23 Декабрь 2017, 22:30
				 Игорь Столяров
				Возможно, это только для меня "открытие", но на всякий случай напишу ... 
 
Calc из пакета Libre Office полноценно работает с XLSX файлами: открывает, сохраняет и т.д.
(в отличии от Calc из пакета Apache OpenOffice, который XLSX только медленно читает с конвертацией).
 
И в принципе, это решает задачу полноценной работы с XLSX отчётами вообще без коммерческого Microsoft Excel. 

Да и генерация отчётов в ODS специально для OO Calc похоже теперь тоже не нужна особо ...
 
			
					
				libxlsxwriter for Clarion
				Добавлено: 25 Декабрь 2017, 11:42
				 finsoftrz
				На перспективу, наверно, стоит иметь ввиду xlsx. Я глянул, что создается внутри zip архива. В общем, все находится, можно и паровозиком прицепиться и портировать на чистый кларион. Архивировать можно и 7z. Тут есть забавная тонкость. Если разархивировать xlsx файл через 7z, то винда автоматически меняет кодировку файлов. То есть, если хотим завернуть обратно, надо поменять кодировку взад на utf8. Например, с помощью xml notepad. Им же можно пользоваться, чтобы автоматически привел к читабельному виду xml файлы, которые сжаты без разделителей строк.
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 27 Декабрь 2017, 7:26
				 Игорь Столяров
				Подскажите пожалуйста, а есть ли в LibXLSX возможность выполнить группировку строк ?
Т.е. то, что в OLE делается вот так:
 
			
					
				libxlsxwriter for Clarion
				Добавлено: 27 Декабрь 2017, 10:17
				 RaFaeL
				Я так понимаю это уровень в 
https://libxlsxwriter.github.io/structl ... ml#details но currently not supported. Ждем-с.