Страница 12 из 62
libxlsxwriter for Clarion
Добавлено: 12 Февраль 2017, 14:06
RaFaeL
Создание файлов Excel (xlsx) без использования Excel на основе проекта libxlsxwriter (
https://libxlsxwriter.github.io). Можно создавать файлы, листы в них, писать данные (текст (в т.ч. русский), число, дата, время), ставить форматирование (цвет, рамки, шрифт, выравнивание, размер), объединять ячейки, фиксировать и скрывать строки и колонки, вставлять изображения, рисовать графики (диаграммы), устанавливать настройки печати и свойства документа.
Для конвертирования "картинок" форматов используется библиотека Tpicture от Taboga, у кого этого класса нет замените на что-то свое
libxlsxwriter for Clarion
Добавлено: 07 Январь 2018, 7:16
Игорь Столяров
Добавил в штатную демку библиотеки пример экспорта произвольной картинки в квадратную ячейку заданного размера.
Предлагаю обсудить решение вопроса, конструктивная критика приветствуется !

libxlsxwriter for Clarion
Добавлено: 07 Январь 2018, 10:46
finsoftrz
В жизни надо, когда высота строки не известна. Как вариант, создавать текстовый контрол и определять высоту.
libxlsxwriter for Clarion
Добавлено: 07 Январь 2018, 10:57
finsoftrz
Хотя разумнее выглядит выводить картинку с фиксированными размерами, чтобы соблюдать пропорции.
libxlsxwriter for Clarion
Добавлено: 07 Январь 2018, 12:58
RaFaeL
Просьба потестировать текущий вариант
Обратите внимание - изменился метод InsertImage
libxlsxwriter for Clarion
Добавлено: 07 Январь 2018, 13:14
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
Это то что вспомнил, пока

С праздником всех!
libxlsxwriter for Clarion
Добавлено: 07 Январь 2018, 17:01
Артур
RaFaeL писал(а): 07 Январь 2018, 12:58Просьба потестировать текущий вариант
А libxlsxwriter.dll забыл вложить ?
libxlsxwriter for Clarion
Добавлено: 07 Январь 2018, 17:40
RaFaeL
Не менялся, пока актуальный тот что в шапке
libxlsxwriter for Clarion
Добавлено: 07 Январь 2018, 19:06
Артур
RaFaeL писал(а): 07 Январь 2018, 12:58Просьба потестировать текущий вариант
Протестировал. Спасибо. Меня все устраивает, мои пожелания учтены.
libxlsxwriter for Clarion
Добавлено: 07 Январь 2018, 19:16
Игорь Столяров
gopstop2007 писал(а): 07 Январь 2018, 13:14С картинками есть много нюансов
Да, я полностью с Вами согласен.
Указанное утром решение является частным случаем, есть много ньюансов связанных с масштабированием
картинок с произвольным разрешением ...
Что касается примеров на VBA - есть смысл посмотреть оригинальное описание библиотеки LibXLSXWriter.
Мы ведь стараемся прикрутить к Clarion существующую библиотеку и использовать её возможности,
а не пишем "с нуля" всё, что позволяет делать язык макросов Microsoft Excel.

libxlsxwriter for Clarion
Добавлено: 07 Январь 2018, 22:51
Игорь Столяров
RaFaeL писал(а): 07 Январь 2018, 12:58Просьба потестировать текущий вариант
Спасибо ! Вопрос с InsertImage() закрыт.
Кстати, хочу обратить внимание на одну приятность.
При экспорте картинок через OLE на больших списках (20-60 т. записей) накапливается вертикальная и горизонтальная
погрешности, картинки "съезжают". Как я понимаю это происходит из-за расчёта графических координат картинок на листе.
Приходится постоянно корректировать, перерисовывать лист и т.д.
В XLSXWriter вставка графики выполняется предельно чётко, а так как можно расчитывать масштабирование рисунков
с высокой точностью то и более корректно и красиво, даже без минимальных искажений.

libxlsxwriter for Clarion
Добавлено: 08 Январь 2018, 13:34
RaFaeL
Обновил стартовый пост
libxlsxwriter for Clarion
Добавлено: 09 Январь 2018, 9:33
Артур
RaFaeL писал(а): 08 Январь 2018, 13:34Обновил стартовый пост
Подскажи пожалуйста какой командой можно установить свойство автоподобра высоты строк на листе
libxlsxwriter for Clarion
Добавлено: 09 Январь 2018, 10:31
RaFaeL
Выше обсуждалось вроде... Если установить свойство WrapText то Excel сам увеличит высоту строки при открытии, Libre так не умеет
Автоподбор ширины колонки - никак (
https://libxlsxwriter.github.io/faq.html предпоследний)
Это не свойства файла, это функции рантайма
libxlsxwriter for Clarion
Добавлено: 09 Январь 2018, 11:15
Игорь Столяров
Подскажите пожалуйста, а можно ли как-то управлять толщиной линий сетки ?
Часто бывает нужно вертикальной жирной линией отделить группу колонок и практически во всех
отчётах неплохо смотрится при печати отделение шапки двойной линией, например вот так:
Заранее спасибо за помошь !

libxlsxwriter for Clarion
Добавлено: 09 Январь 2018, 11:36
RaFaeL
Можно добавить, я пока этого не делал, так как в кларионе штатно таких типов линий вроде нет