libxlsxwriter for Clarion

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

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

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

libxlsxwriter for Clarion

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

Добавил в штатную демку библиотеки пример экспорта произвольной картинки в квадратную ячейку заданного размера.
Предлагаю обсудить решение вопроса, конструктивная критика приветствуется ! :)
Вложения
PictureToSquare.zip
(28.62 КБ) 94 скачивания
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

libxlsxwriter for Clarion

Сообщение finsoftrz »

В жизни надо, когда высота строки не известна. Как вариант, создавать текстовый контрол и определять высоту.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4550
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

libxlsxwriter for Clarion

Сообщение finsoftrz »

Хотя разумнее выглядит выводить картинку с фиксированными размерами, чтобы соблюдать пропорции.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Просьба потестировать текущий вариант
Обратите внимание - изменился метод InsertImage
Последний раз редактировалось RaFaeL 13 Январь 2018, 14:42, всего редактировалось 1 раз.
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

libxlsxwriter for Clarion

Сообщение gopstop2007 »

Игорь Столяров писал(а): 07 Январь 2018, 7:16 Добавил в штатную демку библиотеки пример экспорта произвольной картинки в квадратную ячейку заданного размера.
Предлагаю обсудить решение вопроса, конструктивная критика приветствуется ! :)
Огромное спасибо Игорь, чувствуется профессиональный подход к вопросу, рамочка и т.п.
С картинками есть много нюансов
1. Картинку можно вставить как "есть", то есть при вставке размер вставляемой картинки файла не меняется и соответственно при вставке больших картинок размер Excel файла будет большой. Для уменьшения размера Excel, уменьшаем размер самих вставляемых картинок.
2. Картинки можно "вставлять" ссылкой только отображая в Excel (2010 и выше) сами файлы будут находится "где то рядом". Удобно, например когда фото на сайте :)
Макрос в Excel

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

Sub CropImage()
    Filename$ = "C:\Users\хххх\Desktop\IMG_12082014_222844.png"
 
    Dim pic As Picture
    Set pic = ActiveSheet.Pictures.Insert(Filename$) ' вставка на лист
    
    With pic.ShapeRange.PictureFormat ' сколько с какой стороны обрезать
        .CropLeft = 50
        .CropTop = 60
        .CropBottom = 70
        .CropRight = 80
    End With
End Sub
Это то что вспомнил, пока :)
С праздником всех!
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Артур
Ветеран
Сообщения: 329
Зарегистрирован: 01 Июнь 2006, 12:33
Откуда: Новороссийск

libxlsxwriter for Clarion

Сообщение Артур »

RaFaeL писал(а): 07 Январь 2018, 12:58Просьба потестировать текущий вариант
А libxlsxwriter.dll забыл вложить ?
Любить и обещать ничего не стоит
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Не менялся, пока актуальный тот что в шапке
Аватара пользователя
Артур
Ветеран
Сообщения: 329
Зарегистрирован: 01 Июнь 2006, 12:33
Откуда: Новороссийск

libxlsxwriter for Clarion

Сообщение Артур »

RaFaeL писал(а): 07 Январь 2018, 12:58Просьба потестировать текущий вариант
Протестировал. Спасибо. Меня все устраивает, мои пожелания учтены.
Любить и обещать ничего не стоит
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

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

gopstop2007 писал(а): 07 Январь 2018, 13:14С картинками есть много нюансов
Да, я полностью с Вами согласен.
Указанное утром решение является частным случаем, есть много ньюансов связанных с масштабированием
картинок с произвольным разрешением ...

Что касается примеров на VBA - есть смысл посмотреть оригинальное описание библиотеки LibXLSXWriter.
Мы ведь стараемся прикрутить к Clarion существующую библиотеку и использовать её возможности,
а не пишем "с нуля" всё, что позволяет делать язык макросов Microsoft Excel. ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

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

RaFaeL писал(а): 07 Январь 2018, 12:58Просьба потестировать текущий вариант
Спасибо ! Вопрос с InsertImage() закрыт. :)

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

libxlsxwriter for Clarion

Сообщение RaFaeL »

Обновил стартовый пост
Аватара пользователя
Артур
Ветеран
Сообщения: 329
Зарегистрирован: 01 Июнь 2006, 12:33
Откуда: Новороссийск

libxlsxwriter for Clarion

Сообщение Артур »

RaFaeL писал(а): 08 Январь 2018, 13:34Обновил стартовый пост
Подскажи пожалуйста какой командой можно установить свойство автоподобра высоты строк на листе
Любить и обещать ничего не стоит
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

libxlsxwriter for Clarion

Сообщение RaFaeL »

Выше обсуждалось вроде... Если установить свойство WrapText то Excel сам увеличит высоту строки при открытии, Libre так не умеет
Автоподбор ширины колонки - никак (https://libxlsxwriter.github.io/faq.html предпоследний)
Это не свойства файла, это функции рантайма
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7322
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

libxlsxwriter for Clarion

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

Подскажите пожалуйста, а можно ли как-то управлять толщиной линий сетки ?

Часто бывает нужно вертикальной жирной линией отделить группу колонок и практически во всех
отчётах неплохо смотрится при печати отделение шапки двойной линией, например вот так:

excel.jpg

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

libxlsxwriter for Clarion

Сообщение RaFaeL »

Можно добавить, я пока этого не делал, так как в кларионе штатно таких типов линий вроде нет
Ответить