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

libxlsxwriter for Clarion
Добавлено: 05 Февраль 2018, 9:44
RaFaeL
Добавили уровни. Попробуйте
libxlsxwriter for Clarion
Добавлено: 05 Февраль 2018, 20:07
RaFaeL
Попробовал сам. Работает отлично, но пока нет настройки расположения управляющих кнопок
libxlsxwriter for Clarion
Добавлено: 06 Февраль 2018, 19:00
RaFaeL
Добавлены настройки отображения уровней
libxlsxwriter for Clarion
Добавлено: 06 Февраль 2018, 20:01
Игорь Столяров
Дед Пахом писал(а): 04 Февраль 2018, 11:32На кой ляд класс в приложении объявлять? include('myxlsx.inc')
Я извиняюсь за свою темноту, но что-то никак не могу прокусить это место ...

Если я в хвост xlsxWriter.inc добавлю свой класс (и далее в программе его использую), то всё прекрасно.
Код: Выделить всё
!xlsxWriter.inc
....
xlsxmyuser CLASS(xlsxwriter), TYPE, MODULE('myxlsx.clw'), LINK('myxlsx.clw')
MyLong Long
END
Но если я выношу свой класс в отдельный файл myxlsx.inc
и в APP -> After Global Include добавляю строчку с его включением в проект:
Код: Выделить всё
Include('xlsxwriter.inc')
Include('myxlsx.inc')
то всё компилируется (есстесно), но на этапе сборки получаю Unresolved External xlsxmyuser ....
Почему всё так ?

libxlsxwriter for Clarion
Добавлено: 06 Февраль 2018, 20:04
Дед Пахом
myxlsx.inc должен содержать строку
а APP не должен.
libxlsxwriter for Clarion
Добавлено: 06 Февраль 2018, 21:08
Игорь Столяров
Дед Пахом писал(а): 06 Февраль 2018, 20:04myxlsx.inc должен содержать строку
Неа ! Пробовал. Что-то тут не чисто ...

Сделал элементарный концепт проблемы на основе штатного примера.
Если есть возможность - посмотрите пожалуйста.
libxlsxwriter for Clarion
Добавлено: 06 Февраль 2018, 21:12
Дед Пахом
Я бы посмотрел, да "rar" не понимаю.
libxlsxwriter for Clarion
Добавлено: 06 Февраль 2018, 21:15
Игорь Столяров
О ! Раньше форум RAR не принимал ...

Заменяем на ZIP.
libxlsxwriter for Clarion
Добавлено: 06 Февраль 2018, 21:31
Дед Пахом
В xlsxmy.clw не тот файл инклюдится.
Так у меня по крайней мере компилится (но не собирается, потому что lib не подключена в проекте).
libxlsxwriter for Clarion
Добавлено: 06 Февраль 2018, 21:43
Игорь Столяров
Ура ! Заработало ! Спасибо !
Но как всё запущено ... Почему бы компилятору не написать это человеческим языком ?
Теперь можно добавлять свои методы и данные в XLSXWriter не изменяя авторскую обёртку,
сделанный ранее код на 100% совместим и абсолютно нет необходимости вводить для этого
пятиэтажные имена данных и методов. Это место проехали. Ещё раз спасибо !

libxlsxwriter for Clarion
Добавлено: 07 Февраль 2018, 8:18
Игорь Столяров
Рискну ещё выйти с предложением ...

Можно ли добавить в метод MERGE обработку особого условия:
Код: Выделить всё
xlsxwriter.Merge ...
if omitted(6)
....
elsIf (first_row_ = last_row_) and (first_col_ = last_col_)
Self.WriteString( ....
else ...
....
Потому что, например, вот такой код просто игнорируется:
Код: Выделить всё
Row# = 5
Col# = 3
xlsxwriter.Merge(Row#,Col#,Row#,Col#,'Привет !')
Когда идёт прорисовка отчёта в динамике, эпизодически попадаю на эту комбинацию ...
В общем-то нет ничего плохого в том, что в метод передаётся "диапазон" из одной ячейки, это скорее особенность
библиотеки по работе с диапазонами, которую можно убрать.
libxlsxwriter for Clarion
Добавлено: 07 Февраль 2018, 9:51
RaFaeL
Добавил
libxlsxwriter for Clarion
Добавлено: 07 Февраль 2018, 10:56
Игорь Столяров
Спасибо. А вот еще вопрос с фронта работ (я ещё разбираюсь !).
Группировка строк устанавливается методом SetRow(), у которого второй обязательный параметр - это высота строки.
Т.е. получается, что строки с WrapText нельзя группировать ?
Точнее обязательно нужно жёстко устанавливать высоту строки внутри группы. Я правильно понимаю ?
libxlsxwriter for Clarion
Добавлено: 07 Февраль 2018, 10:59
RaFaeL
Попробуйте передать 15