Страница 13 из 62

libxlsxwriter for Clarion

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

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 11:40
Игорь Столяров
RaFaeL писал(а): 09 Январь 2018, 11:36так как в кларионе штатно
Вы имеете ввиду нет в интерфейсе библиотеки libxlsxw.dll ?
(мой пример в предыдущем сообщении нарисован через OLE в программе на Clarion)

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 11:54
RaFaeL
В интерфейсе библиотеки как раз есть, нет именно свойств стиля в Кларионе штатного в отчете или в листе, т.е. а откуда брать этот параметр то - только из каких-то специально заточенных под выгрузку в Эксель функций

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 12:05
Игорь Столяров
RaFaeL писал(а): 09 Январь 2018, 11:54нет именно свойств стиля в Кларионе штатного в отчете или в листе
Ну для REPORT толщина линий регулируется ?Line{Prop:LineWidth}
Но в общем-то это значения не имеет - мы же можем просто вручную задать тип стиля для прорисовки вида сетки в XLSX ?
Точно также, как в Clarion нет стиля для прорисовки ячейки с двумя сторонами, но мы это делаем:

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

   XLSX.Format.BorderStyle = XLSX:BorderLeft + XLSX:BorderTop
и всё пучком ! :)

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 12:19
RaFaeL
Пробуйте

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 12:21
Игорь Столяров
Уф ! Вы желания назойливых пользователей исполняете быстрее чем Хоттабыч ... :)
Спасибо ! Пошёл пробовать ... :)

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 13:22
Игорь Столяров
RaFaeL писал(а): 09 Январь 2018, 12:19Пробуйте
Попробовал. Назрел вопрос. Можно ли в метод ClearFormat() добавить строчку:

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

   SELF.Format.BorderFormat = XLSX:BORDER_THIN
иначе теперь надо обычную сетку всегда вручную выставлять после очистки формата.
Судя по структуре, Вы ведь так это и задумали сделать:

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

FormatType GROUP,TYPE
BorderStyle BYTE
BorderColor LONG
BorderFormat BYTE(XLSX:BORDER_THIN)
....

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 13:26
Артур
RaFaeL писал(а): 09 Январь 2018, 10:31WrapText
Обеспечивается перенос текста, но не увеличение установленной высоты строки

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 13:44
RaFaeL
Артур писал(а): 09 Январь 2018, 13:26Обеспечивается перенос текста, но не увеличение установленной высоты строки
Если высоту строки явно не задавать, то Excel должен при открытии сам увеличить. Иначе никак

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 13:44
RaFaeL
Игорь Столяров писал(а): 09 Январь 2018, 13:22Попробовал. Назрел вопрос. Можно ли в метод ClearFormat() добавить строчку:
Добавил, спасибо

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 13:48
Игорь Столяров
RaFaeL писал(а): 09 Январь 2018, 13:44Добавил, спасибо
И ещё вопрос. Теперь сетку для ячеек можно рисовать любую, всё работает прекрасно.
Но как решить конкретную задачу: отделить шапку таблицы от тушки двойной (или жирной) линией ?!
Я заранее извиняюсь за своё тугодумие, но у меня действительно нет идей ... :(

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 14:17
Артур
RaFaeL писал(а): 09 Январь 2018, 13:44Иначе никак
Понятно
Просьба поправить пример, чтобы запускался просмотр сформированного файла xlsx, например, как во вложении

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 14:57
RaFaeL
ОК, добавил в пример

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 15:11
finsoftrz
Игорь Столяров писал(а): 09 Январь 2018, 13:48
RaFaeL писал(а): 09 Январь 2018, 13:44Добавил, спасибо
И ещё вопрос. Теперь сетку для ячеек можно рисовать любую, всё работает прекрасно.
Но как решить конкретную задачу: отделить шапку таблицы от тушки двойной (или жирной) линией ?!
Я заранее извиняюсь за своё тугодумие, но у меня действительно нет идей ... :(
Установки можно задавать индивидуально у каждой границы. У меня структура для границ выглядит так:
QueueBordersType Queue, type !список границ
QueueBorderLeft BYTE !лево
QueueBorderTop BYTE !верх
QueueBorderRight BYTE !право
QueueBorderBottom BYTE !низ
QueueBorderDiag BYTE !диагональ
QueueBorderColorLeft LONG !лево (цвет)
QueueBorderColorTop LONG !верх (цвет)
QueueBorderColorRight LONG !право (цвет)
QueueBorderColorBottom LONG !низ (цвет)
QueueBorderColorDiag LONG !диагональ (цвет)
QueueBorderStyleLeft STRING(10) !лево (стиль)
QueueBorderStyleTop STRING(10) !верх (стиль)
QueueBorderStyleRight STRING(10) !право (стиль)
QueueBorderStyleBottom STRING(10) !низ (стиль)
QueueBorderStyleDiag STRING(10) !диагональ (стиль)
QueueBorderNum LONG !номер границ
end

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 15:53
Игорь Столяров
finsoftrz писал(а): 09 Январь 2018, 15:11У меня структура для границ выглядит так:
Супер ! А можно Вас попросить завести отдельную тему для обсуждения Вашего класса ?

А то я 5 мин. с перепугу искал описываемую Вами QueueBordersType в XLSXWRITER.INC ... ;)
И мы тоже Вам своими глупостями мешать не будем. Иначе путаница получается, и так всё не просто ....
Спасибо за понимание ! :)

Анекдот:
БОЛЬНОЙ: Доктор, у меня рука болит !
ДОКТОР (ощупывая себя): А у меня, слава богу нет ! ;)

libxlsxwriter for Clarion

Добавлено: 09 Январь 2018, 16:03
finsoftrz
Я имел ввиду структуру xlsx, а не конкретную библиотеку. Думал, что не помешает для понимания, как это все работает. Ок, не буду больше мешать...