Excel по шаблону
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 1702
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Excel по шаблону
Есть замечательная библиотека libxlsxwriter for Clarion от RaFaeL, viewtopic.php?f=8&t=3830&start=30&hilit ... 0%BE%D0%BD.
Отдельное спасибо ему за это.
Но есть необходимость выводить данные в Excel по готовому шаблону. К сожалению libxlsxwriter не позволяет открыть готовый Excel шаблон.
Может кто то знает решение данного вопроса и поделится с сообществом ?
Один из вариантов решения у уважаемого finsoftrz, с генерированный программой шаблон (скрипт) сохраняется в файл, как описано здесь viewtopic.php?p=32159#p32159
Возможно есть другие решения, хотелось бы объединить скорость libxlsxwriter, который будет выводить данные в готовый Excel шаблон?
Спасибо за внимание.
Отдельное спасибо ему за это.
Но есть необходимость выводить данные в Excel по готовому шаблону. К сожалению libxlsxwriter не позволяет открыть готовый Excel шаблон.
Может кто то знает решение данного вопроса и поделится с сообществом ?
Один из вариантов решения у уважаемого finsoftrz, с генерированный программой шаблон (скрипт) сохраняется в файл, как описано здесь viewtopic.php?p=32159#p32159
Возможно есть другие решения, хотелось бы объединить скорость libxlsxwriter, который будет выводить данные в готовый Excel шаблон?
Спасибо за внимание.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Excel по шаблону
Ну если вопрос именно по Microsoft Excel - то просто открываем через OLE файл XLSX с нарисованным шаблоном,
и заменяем поля на значения …
Сохраняем как копию готовый отчёт, всё через то же OLE в любом фоомате (XLSX, ODS, PDF и т.д.)
Сразу хочу обратить внимание на конструкцию Sub() - есть ограничение на длину экспортируемой строки.
Так же числа должны быть с разделителем в соответствии с региональными настройками Windows и есть
небольшие, но решаемые заморочки с кавычками. Но это уже самостоятельно, а то не интересно будет …
OLE по своей сути ресурсоёмкий, но при достаточных ресурсах - работает вполне шустро.
И можно обрабатывать шаблоны с любыми наворотам, форматированием, вставленной графикой и т.д.
и заменяем поля на значения …
Код: Выделить всё
ExcelObject{'Application.ActiveSheet.Cells.Replace("' & Clip(xField_) & '","' & Clip(Sub(Clip(xValue_),1,250)) & '",2,1)'}
Сразу хочу обратить внимание на конструкцию Sub() - есть ограничение на длину экспортируемой строки.
Так же числа должны быть с разделителем в соответствии с региональными настройками Windows и есть
небольшие, но решаемые заморочки с кавычками. Но это уже самостоятельно, а то не интересно будет …
OLE по своей сути ресурсоёмкий, но при достаточных ресурсах - работает вполне шустро.
И можно обрабатывать шаблоны с любыми наворотам, форматированием, вставленной графикой и т.д.
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Excel по шаблону
Жаль, конечно, что библиотека не читает Экселевские файлы. По мне - если может писать, должна и читать. Ну да ладно. Если шаблон уже в Экселе, то можно через OLE считать атрибуты ячеек шаблона, например, в очередь (ну сколько их, этих ячеек? 100х100?). А дальше обрабатывать шаблон в памяти и писать этой библиотекой. А если нужно загнать в Эксель небольшое количество данных (ну не знаю, например, разовый договор с покупателем, где его наименование и реквизиты), то сразу в Эксель через OLE.
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Excel по шаблону
Я пробовал такое … слишком много проблем.
И всё равно невозможно воспроизвести потом через LibXLSXWriter оригинальный вид произвольного шаблона.
Даже, если забыть о графике и встраиваемых объектах, то попросту невозможно раздвинуть по тексту объединённые ячейки.
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Excel по шаблону
А разбор из Экселевского xml-файла меньше проблем доставит? ИМХО, задачи примерно равной сложности.Игорь Столяров писал(а): ↑21 Июль 2018, 18:20 Игорь Столяров » 21 Июль 2018, 18:20
kreator писал(а): ↑21 Июль 2018, 17:56то можно через OLE считать атрибуты ячеек шаблона
Я пробовал такое … слишком много проблем.
We are hard at work… for you.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Excel по шаблону
Шаблон - это не просто готовый бланк, в который надо вписать значения, а что-то похожее на report структуру с описанием деталек. Я вроде выкладывал скрипт на бэйсике, который разбирает xml файл в плоский вид, легко забираемый из клариона без использования дополнительных библиотек. Особых проблем вроде не возникало. Другое дело, что LibXLSXWriter заточена на ручное написание кода, то есть ее методы преобразуют стандартные в более удобный с этой точки зрения вариант.
C6/C11, ШВС, tps/btrieve.
-
- ✯ Ветеран ✯
- Сообщения: 1702
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Excel по шаблону
Если есть у Вас возможность, просьба, выложите еще раз или укажите ссылку на него. Спасибо.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Excel по шаблону
А вот на это не хотите взглянуть -> https://github.com/brechtsanders/xlsxio или https://brechtsanders.github.io/xlsxio ?
C10, Win10x64
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Excel по шаблону
Вы читали возможности этого? По сравнению с libxlsxwriter детский лепет.vic7tar писал(а): ↑22 Июль 2018, 11:23 А вот на это не хотите взглянуть -> https://github.com/brechtsanders/xlsxio или https://brechtsanders.github.io/xlsxio ?
Озвученную проблему с объединёнными ячейками решает? Мне представляется у Вас всё заточено под себя. Произвольный шаблон, сделанный пользователем, так просто не разобрать.
We are hard at work… for you.
Excel по шаблону
А что вообще-то хочет ТС? Открыть существующий документ и записать в нужные места свои данные, я так понимаю или нет?
При чем тут проблемы с объединёнными ячейками? И что-то не понял, что значит:
C10, Win10x64
-
- ✯ Ветеран ✯
- Сообщения: 1702
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Excel по шаблону
Автоматизацию, без установленного Excel и минимум кода.
В программе используются ранее созданные в Excel шаблоны, которые может подправить или изменить пользователь.
Используя Excel шаблоны загружать(заполнять) их данными из программы.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Excel по шаблону
Вот есть файл в Экселе. Там может быть хитрое форматирование, может быть графика, может быть диаграммы и т.д. И это называется шаблон. В определённые ячейки нужно записать свои данные и тогда будет готовый документ. Через OLE долго. ТС и спрашивает - как этот экселевский шаблон разобрать? А файл записать через библиотеку libxlsxwriter.
Инструмент (шаблон) в принципе делается для конечного пользователя. И представьте - пользователь захотел в бланк счёта вставить свой логотип. Как его найти в шаблоне? Совсем по-хорошему нужно парсить все xml-файлы соответствующие Экселевскому файлу. А библиотека, которую вы привели, мало чего может даже для записи, не говоря уже про чтение.
We are hard at work… for you.
Excel по шаблону
Извиняюсь, но по-моему ТС такого механизма не хотел.
Да какой это там инструмент, отличие шаблона от порожденного файла только в расширении. При чем тут хитрое форматирование, зачем в шаблоне что-то искать. На то он и шаблон, чтобы его использовать с минимумом усилий, на 95% без всяких форматирований, просто в заранее известные ячейки записывать конкретные данные.kreator писал(а): ↑22 Июль 2018, 17:26Инструмент (шаблон) в принципе делается для конечного пользователя. И представьте - пользователь захотел в бланк счёта вставить свой логотип. Как его найти в шаблоне? Совсем по-хорошему нужно парсить все xml-файлы соответствующие Экселевскому файлу. А библиотека, которую вы привели, мало чего может даже для записи, не говоря уже про чтение.
А чего она там не может?
C10, Win10x64
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Excel по шаблону
Не знаю, насколько поможет... При желании, все это можно и на клару перевести, если есть желание слегка пободаться с враппером для ms xml parser.gopstop2007 писал(а): ↑22 Июль 2018, 10:31Если есть у Вас возможность, просьба, выложите еще раз или укажите ссылку на него. Спасибо.
Здесь был АТТАЧ.
Убрал на FTP в /_Unknown/make_templ_xlsx.zip т.к. сраный Яндекс ругается на VBS
Убрал на FTP в /_Unknown/make_templ_xlsx.zip т.к. сраный Яндекс ругается на VBS
C6/C11, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4615
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 6 раз
- Поблагодарили: 37 раз
Excel по шаблону
Для объединения ячеек в xml используется, насколько помню, тэг merge, в котором задается диапазон объединяемых ячеек. Стиль определяется по первой ячейке в диапазоне. Больше никакой мистики там нет...kreator писал(а): ↑22 Июль 2018, 13:06Вы читали возможности этого? По сравнению с libxlsxwriter детский лепет.vic7tar писал(а): ↑22 Июль 2018, 11:23 А вот на это не хотите взглянуть -> https://github.com/brechtsanders/xlsxio или https://brechtsanders.github.io/xlsxio ?Озвученную проблему с объединёнными ячейками решает? Мне представляется у Вас всё заточено под себя. Произвольный шаблон, сделанный пользователем, так просто не разобрать.
Чем отличается шаблон, который делает пользователь, от шаблона, который делаем мы сами? Сами понимаете, что ничем... Все, что можно сделать с помощью libxlsxwriter, можно оформить через шаблон и не писать код руками. Результат все равно будет в виде набора xml файлов определенной структуры.
C6/C11, ШВС, tps/btrieve.