libxlsxwriter for Clarion

Программы на Clarion, шаблоны, библиотеки и пр.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2248
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libxlsxwriter for Clarion

Сообщение Дед Пахом » 20 Февраль 2019, 13:35

RaFaeL писал(а):
20 Февраль 2019, 13:02
Лайкаем запись и ждем пока автор реализует.
Я так понял, автор ждёт, когда ему переведут $800.
С уважением, ДП

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 858
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL » 20 Февраль 2019, 13:42

Дед Пахом писал(а):
20 Февраль 2019, 13:35
Я так понял, автор ждёт, когда ему переведут $800.
В других задачках типа
https://github.com/jmcnamara/libxlsxwriter/issues/37
https://github.com/jmcnamara/libxlsxwriter/issues/90
не дождался, так реализовал. Так что надеемся на лучшее ))

kreator
✯ Ветеран ✯
Сообщения: 3256
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

libxlsxwriter for Clarion

Сообщение kreator » 20 Февраль 2019, 14:30

Макнамара пытается быть хитрым. Выставил сложность в пятёрку (максимальную) и просит бабла. ИМХО, добавить тег "Comment" к ячейке плёвое дело.
RaFaeL, а этот "ANSI C" код кларионовским компилятором никак?
We are hard at work… for you. :)

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4040
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 20 Февраль 2019, 14:53

kreator писал(а):
20 Февраль 2019, 14:30
Макнамара пытается быть хитрым. Выставил сложность в пятёрку (максимальную) и просит бабла
На самом деле там с этими комментариями не всё просто. Насколько я знаю, через OLE это не делается и
разработчик EasyExcel эту возможность приводил в пример преимущества своего продукта … ;)
«V» значит Вендетта !

kreator
✯ Ветеран ✯
Сообщения: 3256
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

libxlsxwriter for Clarion

Сообщение kreator » 20 Февраль 2019, 16:41

Игорь Столяров писал(а):
20 Февраль 2019, 14:53
Насколько я знаю, через OLE это не делается
Делается:

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

  	LOC:OLE{'Range("A1").Select'} 
  	LOC:OLE{'Range("A1").AddComment'} 
  	LOC:OLE{'Range("A1").Comment.Visible'} = 0
  	LOC:OLE{'Range("A1").Comment.Text("KreatoR<10>Тест.")'}
И сам Эксель выгружает в xml эти примечания в примитивном виде. Много ума не надо.
We are hard at work… for you. :)

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4040
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 20 Февраль 2019, 16:49

Спасибо ! Буду знать. :)
Хотя через OLE сейчас только читаем XLSX файлы … весь экспорт делается в XLSXWriter. :)
«V» значит Вендетта !

Аватара пользователя
RaFaeL
Ветеран
Сообщения: 858
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL » 20 Февраль 2019, 17:45

kreator писал(а):
20 Февраль 2019, 14:30
RaFaeL, а этот "ANSI C" код кларионовским компилятором никак?
Представления не имею, скачайте да попробуйте )
Особой разницы не вижу, разве что если кому отдельная dll мешается
В любом случае я этот код на С дописывать не буду, а кто хочет дописать так может и так дописать и собрать... Я собираю в MinGW через MSYS

gopstop2007
✯ Ветеран ✯
Сообщения: 1221
Зарегистрирован: 25 Март 2009, 21:55

libxlsxwriter for Clarion

Сообщение gopstop2007 » 18 Март 2019, 9:03

хотел поднять старый вопрос про вставку картинок как в viewtopic.php?p=33386#p33386
но выскакивает ошибка. Кто решил вопрос, или знает решение?
Спасибо за внимание
Вложения
xls01.png
xls01.png (5.64 КБ) 254 просмотра
xls02.png
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4040
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 18 Март 2019, 9:29

gopstop2007 писал(а):
18 Март 2019, 9:03
хотел поднять старый вопрос про вставку картинок
Не совсем понятно в чём проблема … ? Может быть на базе штатного примера сделаете демонстрацию проблемы ?
По ссылке идёт обсуждение какого-то открытия с указанием отрицательных размеров картинки … может в этом проблема ?
«V» значит Вендетта !

gopstop2007
✯ Ветеран ✯
Сообщения: 1221
Зарегистрирован: 25 Март 2009, 21:55

libxlsxwriter for Clarion

Сообщение gopstop2007 » 18 Март 2019, 9:41

Игорь Столяров писал(а):
18 Март 2019, 9:29
По ссылке идёт обсуждение какого-то открытия с указанием отрицательных размеров картинки … может в этом проблема ?
указаны отрицательные позиции для картинки, чтобы она(картинка) вставлялась("вписывалась") в размер клетки. На тот момент это было простое решение :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4040
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 18 Март 2019, 10:25

gopstop2007 писал(а):
18 Март 2019, 9:41
На тот момент это было простое решение
Это не решение. В оригинальной документации нет работы с отрицательными размерами картинки.
см. https://libxlsxwriter.github.io/workshe ... 46fe730f6f

Просто срабатывала какая-то защита от дурака в Microsoft Excel (как в Clarion при делении на ноль) и
происходил сброс размера картинки по размеру ячейки. Но видимо это поддерживается не везде и не всегда ...
«V» значит Вендетта !

gopstop2007
✯ Ветеран ✯
Сообщения: 1221
Зарегистрирован: 25 Март 2009, 21:55

libxlsxwriter for Clarion

Сообщение gopstop2007 » 19 Март 2019, 20:57

Игорь Столяров писал(а):
18 Март 2019, 10:25
Это не решение. В оригинальной документации нет работы с отрицательными размерами картинки.
см. https://libxlsxwriter.github.io/workshe ... 46fe730f6f
Спасибо, я в курсе :) Вот руки "дошли", сделал вписывание в клетку не зависимо от размера клетки и размера картинки.
Размер вычислял не открывая картинки, за это отдельное спасибо Yufil

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

CODE
r_path	string(255) 				! файл с картинкой
r_sizeH     decimal(7,2)			! высота в картинке (пикселях)
r_photoH	real				! высота колонки Excel
r_scale	decimal(7,2)				! маштаб - сооотноение
DATA

            Image# = Create(0,CREATE:image) 
            Image#{Prop:Noheight} = True
            Image#{Prop:NoWidth} = True 
            0{Prop:Pixels} = True 
            Image#{Prop:Text} = r_path   		! Загрузим картинку
            ! r_sizeW = Image#{Prop:Width}          	 
            r_sizeH = Image#{Prop:Height}          	 
            Destroy(Image#) 
            0{Prop:Pixels} = False
            r_scale = r_photoH / (r_photoH + r_sizeH) 
            err#=xlsx.InsertImage(l_row,l_column,r_path,1,1,r_scale,r_scale)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4040
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 19 Март 2019, 21:44

gopstop2007 писал(а):
19 Март 2019, 20:57
Вот руки "дошли"
Отлично, но это простейший вариант и … извините, но немного некорректный.
Нужно масштабировать картинку по большей стороне и, к сожалению, в Microsoft Excel единица измерения ячейки - не пиксел.
Сделайте экспорт сотни разношёрстных картинок - сразу всё увидите.

Из опций - хорошо бы оставлять отступ от края ячейки и центровать неквадратную картинку по горизонтали / вертикали с учётом отступа.
Кларионовский Image поддерживает не все форматы и косячно работает с полноцветными BMP и GIF.
Размер картинки хорошо получать через библиотеку FreeImage, там правда своеобразная ед. измерения, но зато точно. :)
Ну и вопрос размера картинки. Желательно сопоставлять размер ячейки и картинки, и выполнять её нормализацию перед вставкой.
Иначе при экспорте какого-нибудь каталога образцов товаров с картинками 100x100 можно получить на выходе гигабайтный XLSX. :)

Где-то пол-года назад подробно обсуждали в этой ветке тему вставки графики - если интересно посмотрите.
«V» значит Вендетта !

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2248
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

libxlsxwriter for Clarion

Сообщение Дед Пахом » 19 Март 2019, 22:17

Игорь Столяров писал(а):
19 Март 2019, 21:44
Размер картинки хорошо получать через библиотеку FreeImage, там правда своеобразная ед. измерения, но зато точно.
В смысле своеобразная? Разве вот это не пиксели возвращает?

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

  w = fi.iImage.GetWidth()
  h = fi.iImage.GetHeight()
С уважением, ДП

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4040
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

libxlsxwriter for Clarion

Сообщение Игорь Столяров » 19 Март 2019, 22:27

Дед Пахом писал(а):
19 Март 2019, 22:17
Разве вот это не пиксели возвращает?
Точно ! Перепутались в голове две разные сказки. :)
Размер ВСЕГДА получается в пикселях, а вот РАЗРЕШЕНИЕ в точках / метр.

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

     theImage.iImage.SetDotsPerMeterX(3780)   ! Установить разрешение 96 т/дюйм = 3780 т/метр
     theImage.iImage.SetDotsPerMeterY(3780)
«V» значит Вендетта !

Ответить