Страница 4 из 62
					
				libxlsxwriter for Clarion
				Добавлено: 12 Февраль 2017, 14:06
				 RaFaeL
				Создание файлов Excel (xlsx) без использования Excel на основе проекта libxlsxwriter (
https://libxlsxwriter.github.io). Можно создавать файлы, листы в них, писать данные (текст (в т.ч. русский), число, дата, время), ставить форматирование (цвет, рамки, шрифт, выравнивание, размер), объединять ячейки, фиксировать и скрывать строки и колонки, вставлять изображения, рисовать графики (диаграммы), устанавливать настройки печати и свойства документа. 
Для конвертирования "картинок" форматов используется библиотека Tpicture от Taboga, у кого этого класса нет замените на что-то свое
 
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 13 Декабрь 2017, 10:23
				 finsoftrz
				Извините, думал, что интересно будет, так как аналогичный подход можно использовать и с библиотекой, о которой идет речь. Если админ удалит эти посты, я не против.
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 13 Декабрь 2017, 10:28
				 finsoftrz
				George писал(а): 13 Декабрь 2017, 10:20
А умеет DExcel работать с XLSX ???
 
Нет, с xls. Но смысл не меняется, библиотеки для вывода в excel работают однотипно. Заменить одну на другую не должно вызвать сложностей.
 
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 13 Декабрь 2017, 11:28
				 gopstop2007
				RaFaeL писал(а): 11 Декабрь 2017, 18:36
Пробуйте
Если еще чего не хватает, пишите, постараюсь добавить
 
Подставил для вывода фото в xlsx справочника товара, не выводит.
Разобрался, из-за ограничения по буферу или zlib не может сзиповать  

Если в пример добавить код ниже вы сами увидите, надеюсь
Код: Выделить всё
            LOOP i# = 1 to 600 ! меньше 500 - выводит
                options.x_offset=1
                options.y_offset=1
                options.x_scale=0.5
                options.y_scale=0.5
                err#=xlsx.InsertImage(i#,2,'c:\Program_2017\Exsample\libxlsxwriter_171211\Photo\image002.png',options)
            end    
 
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 13 Декабрь 2017, 11:48
				 RaFaeL
				
Выдает ошибку 8, "Function parameter validation error."
Вероятно, внутреннее ограничение
Покопал исходники, похоже что дело в количестве одновременно открытых файлов. Файл открывается сразу и не закрывается до создания файла. Автору написал.
P.S. Автор ответил что поправлено в новой версии 
https://github.com/jmcnamara/libxlsxwriter/issues/106
Надо скачать и пересобрать, сейчас займусь )
 
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 13 Декабрь 2017, 12:50
				 gopstop2007
				RaFaeL писал(а): 13 Декабрь 2017, 11:48
Вероятно, внутреннее ограничение
Покопал исходники, похоже что дело в количестве одновременно открытых файлов. Файл открывается сразу и не закрывается до создания файла. Автору написал.
 
Так и есть, так как я из блоба - BLOBTOFILE(pictures,'tmp.jpg') создаю tmp-фото, закидываю в xlsx, и сразу удалял tmp-фото, и так по циклу. В libxlsxwriter удалять tmp-фото не давало.  

 
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 13 Декабрь 2017, 13:51
				 RaFaeL
				
Пересобрал на текущей версии 0.7.5, проверил, работает. 
Обновил стартовый пост 
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 13 Декабрь 2017, 23:47
				 gopstop2007
				спасибо,  

  пример работает, проверю в рабочем проекте
 
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 15 Декабрь 2017, 3:04
				 vic7tar
				RaFael, будет ли продолжение библиотеки? Я имею ввиду функции Сhart-ов.
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 15 Декабрь 2017, 3:44
				 icohff
				RaFaeL писал(а): 11 Декабрь 2017, 18:36Если еще чего не хватает, пишите, постараюсь добавить
 
worksheet_write_formula
worksheet_write_formula_num
 
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 15 Декабрь 2017, 13:58
				 RaFaeL
				vic7tar писал(а): 15 Декабрь 2017, 3:04RaFael, будет ли продолжение библиотеки? Я имею ввиду функции Сhart-ов.
 
Вообще собирался, решил подождать пока будет готово вот это 
https://github.com/jmcnamara/libxlsxwriter/issues/91
И что-то там многовато функций ))
 
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 15 Декабрь 2017, 15:40
				 RaFaeL
				icohff писал(а): 15 Декабрь 2017, 3:44worksheet_write_formula
 worksheet_write_formula_num
 
Пробуйте
 
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 16 Декабрь 2017, 22:03
				 Игорь Столяров
				Можно я тоже буду спрашивать непонятности ? 

 Если буду тупить - не ругайтесь, я быстро учусь. 
Нельзя вернуться к рисованию нормальным шрифтом. 
Т.е. вот так не получается:
Код: Выделить всё
   MyXLSX.Format.FontStyle = Font:Bold
   MyXLSX.SetFormat()
   ! Выводим жирным шрифтом
   MyXLSX.Format.FontStyle = Font:Regular  
   MyXLSX.SetFormat()
   
   ! И всё равно жирный шрифт :(
Приходится делать не очевидно:
Код: Выделить всё
   ....
   Clear(MyXLSX.Format.FontStyle)
   MyXLSX.SetFormat()
   
   ! OK - шрифт вернулся к нормальному ...
 
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 16 Декабрь 2017, 22:40
				 Ал
				Игорь Столяров писал(а): 16 Декабрь 2017, 22:03
Можно я тоже буду спрашивать непонятности ? 

 Если буду тупить - не ругайтесь, я быстро учусь. 
Нельзя вернуться к рисованию нормальным шрифтом. 
Т.е. вот так не получается:
Код: Выделить всё
   MyXLSX.Format.FontStyle = Font:Bold
   MyXLSX.SetFormat()
   ! Выводим жирным шрифтом
   MyXLSX.Format.FontStyle = Font:Regular  
   MyXLSX.SetFormat()
   
   ! И всё равно жирный шрифт :(
насколько я понял - так и должно быть..., все "штатно" - последующие setformat добавляют к предыдущим установкам новые свойства, т.е. если б было после болд не болд а италик, то выдал бы жирным курсивом, см. пример на гит..
https://clck.ru/CJr33 
 
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 16 Декабрь 2017, 23:16
				 RaFaeL
				Ну я тоже только учусь, поэтому там просто написана ерунда )
Попробуйте новый вариант
			 
			
					
				libxlsxwriter for Clarion
				Добавлено: 17 Декабрь 2017, 8:05
				 Игорь Столяров
				Да ! Спасибо, теперь возврат к обычному шрифту работает.
Я, что-то никак не могу понять божественный замысел автора по работе с диапазонами ячеек. 

Примеры на сайте смотрел ... Предположим, хочу закрасить 2 диапазона ячеек.
Добавляем:
Код: Выделить всё
 MAP
     MODULE('libxlsxwriter.dll')
     ...
     worksheet_set_selection(LONG worksheet,LONG first_row,LONG first_col, |
                                          LONG last_row,LONG last_col),LONG,RAW,C,NAME('worksheet_set_selection')
     
xlsxwriter  CLASS
...
SetRange                        PROCEDURE(LONG first_row_,LONG first_col_,LONG last_row_,LONG last_col_),LONG
xlsxwriter.SetRange    PROCEDURE(LONG first_row_,LONG first_col_,LONG last_row_,LONG last_col_)
  CODE
    return worksheet_set_selection(SELF.ActiveWorksheet,first_row_-1,first_col_-1,last_row_-1,last_col_-1)
Теперь, по идее, должно работать следующее:
Код: Выделить всё
            xlsx.ClearFormat()      ! Сбросили формат
            xlsx.SetFormat()
            err# = xlsx.SetRange(1,1,2,2)      ! Применить к диапазону            
            xlsx.Format.Color=color:yellow
            xlsx.SetFormat()                         ! Установить формат 
            err# = xlsx.SetRange(3,4,5,6)      ! Применить к диапазону             
            xlsx.Format.Color=color:Red
            xlsx.SetFormat()                         ! Установить формат
            !err# = xlsx.SetRange(3,4,5,6)      ! И так тоже не работает
            
Но не работает. 

Понятно, что не работает применение формата к диапазону ячеек. Но что конкретно ?