libxlsxwriter for Clarion

Программы на Clarion, шаблоны, библиотеки и пр.

Модератор: Дед Пахом

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

libxlsxwriter for Clarion

Сообщение Дед Пахом »

RaFaeL писал(а): 20 Февраль 2019, 13:02Лайкаем запись и ждем пока автор реализует.
Я так понял, автор ждёт, когда ему переведут $800.
С уважением, ДП
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Дед Пахом писал(а): 20 Февраль 2019, 13:35Я так понял, автор ждёт, когда ему переведут $800.
В других задачках типа
https://github.com/jmcnamara/libxlsxwriter/issues/37
https://github.com/jmcnamara/libxlsxwriter/issues/90
не дождался, так реализовал. Так что надеемся на лучшее ))
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

libxlsxwriter for Clarion

Сообщение kreator »

Макнамара пытается быть хитрым. Выставил сложность в пятёрку (максимальную) и просит бабла. ИМХО, добавить тег "Comment" к ячейке плёвое дело.
RaFaeL, а этот "ANSI C" код кларионовским компилятором никак?
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7323
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

kreator писал(а): 20 Февраль 2019, 14:30Макнамара пытается быть хитрым. Выставил сложность в пятёрку (максимальную) и просит бабла
На самом деле там с этими комментариями не всё просто. Насколько я знаю, через OLE это не делается и
разработчик EasyExcel эту возможность приводил в пример преимущества своего продукта … ;)
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

libxlsxwriter for Clarion

Сообщение kreator »

Игорь Столяров писал(а): 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. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7323
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

Спасибо ! Буду знать. :)
Хотя через OLE сейчас только читаем XLSX файлы … весь экспорт делается в XLSXWriter. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

kreator писал(а): 20 Февраль 2019, 14:30RaFaeL, а этот "ANSI C" код кларионовским компилятором никак?
Представления не имею, скачайте да попробуйте )
Особой разницы не вижу, разве что если кому отдельная dll мешается
В любом случае я этот код на С дописывать не буду, а кто хочет дописать так может и так дописать и собрать... Я собираю в MinGW через MSYS
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

libxlsxwriter for Clarion

Сообщение gopstop2007 »

хотел поднять старый вопрос про вставку картинок как в viewtopic.php?p=33386#p33386
но выскакивает ошибка. Кто решил вопрос, или знает решение?
Спасибо за внимание
Вложения
xls01.png
xls01.png (5.64 КБ) 2616 просмотров
xls02.png
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7323
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

gopstop2007 писал(а): 18 Март 2019, 9:03хотел поднять старый вопрос про вставку картинок
Не совсем понятно в чём проблема … ? Может быть на базе штатного примера сделаете демонстрацию проблемы ?
По ссылке идёт обсуждение какого-то открытия с указанием отрицательных размеров картинки … может в этом проблема ?
За теми кто отстал - не возвращаться. (С) Кодекс
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

libxlsxwriter for Clarion

Сообщение gopstop2007 »

Игорь Столяров писал(а): 18 Март 2019, 9:29По ссылке идёт обсуждение какого-то открытия с указанием отрицательных размеров картинки … может в этом проблема ?
указаны отрицательные позиции для картинки, чтобы она(картинка) вставлялась("вписывалась") в размер клетки. На тот момент это было простое решение :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7323
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

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

Просто срабатывала какая-то защита от дурака в Microsoft Excel (как в Clarion при делении на ноль) и
происходил сброс размера картинки по размеру ячейки. Но видимо это поддерживается не везде и не всегда ...
За теми кто отстал - не возвращаться. (С) Кодекс
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

libxlsxwriter for Clarion

Сообщение gopstop2007 »

Игорь Столяров писал(а): 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 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7323
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

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

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

Где-то пол-года назад подробно обсуждали в этой ветке тему вставки графики - если интересно посмотрите.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение Дед Пахом »

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

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

  w = fi.iImage.GetWidth()
  h = fi.iImage.GetHeight()
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7323
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

Сообщение Игорь Столяров »

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

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

     theImage.iImage.SetDotsPerMeterX(3780)   ! Установить разрешение 96 т/дюйм = 3780 т/метр
     theImage.iImage.SetDotsPerMeterY(3780)
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить