|
Excel на сервере LINUX (OpenXML) 🠗 (Волшебник 30.09.2024 14:37) | ☑ | ||
---|---|---|---|---|
0
alf2006x
26.09.24
✎
18:10
|
Всем доброго дня!
Переползли мы наконец на Линуксовый сервер 1С. Но, вполне ожидаемо, нажили себе кучу вопросов. Один из них вот какой. Ранее, под виндой, формировались файлы Excel с отчетами, которые получали наши клиенты и сильно этому радовались. Для создания файлов, понятное дело, использовалась конструкция "Excel.Application". Но как говориться, "ничто не вечно под луною". Линукс крякнул "не могу"... и пошёл я искать альтернативу. Первая же ссылка которую вернул мне "великий и могучий" намекнула, что это будет легкая прогулка. Но,.. не тут то было. Простейшая, казалось бы задачка: объединить два листа из разных книг в одну книжку стала неподъёмной (в обозримой перспективе, при условии экономии временного ресурса) Подскажите, кто-нибудь как-нибудь решал подобный кейс? Я про объединение листов Excel из разных книг в одну на Линухе. Если да - то какие есть варианты? (DLL - прошу не предлагать) OpenXML-ем уже прокурен насквозь. Но легкого и быстрого пока не вижу. Снятся ужастики в стиле: "...конвертировать отформатированный табличный документ во внутренние файлы XML (xlsx)". Просыпаюсь в холодном поту и пока всё еще надеюсь решить как-то по человечески. В лоб объединить соответствующие XML файлы от разных xlsx-ов не получилось (( Ну, мож, просто не умею их варить. Подскажите кто чем сможет. Заранее благодарю. |
|||
1
Злопчинский
26.09.24
✎
18:21
|
"объединить два листа из разных книг в одну книжку"
почему сразу не формировать ОДИН лист? |
|||
2
arsik
гуру
26.09.24
✎
18:27
|
(0) Зачем вы издеваетесь над старичком (Application)?
Ну есть же нормальные варианты через табличный документ https://forum.infostart.ru/forum9/topic227083/ |
|||
3
timurhv
26.09.24
✎
18:54
|
(0)
>В лоб объединить соответствующие XML файлы от разных xlsx-ов не получилось (( Потому что в файлах с листами хранится не текст, а порядковый номер из файла со словами книги, а также порядковые номера на стили из общего файла. Плюс если там добавлена таблица, то и ее нужно переделывать. Ну и в завершении нужно переопределять зависимости (прописать ссылки на файлы внутри xlsx. У меня есть общий модуль для формирования сложных отчетов через OpenXML, но заполение нужно кодить из разряда: ВставитьТекст("Привет", НомерСтроки, НомерКолонки, Стиль) (2) 1С не умеет сохранять Дату, ширина и высота колонок другая будет. Если нужно специфичное, то нужно писать на OpenXML. |
|||
4
trdm
26.09.24
✎
19:39
|
(3) 1с7 тоже не могла пары вещей. и по этому просто делали пост-обработку файла после сохранения.
так что совет (2) про https://forum.infostart.ru/forum9/topic227083/ - хорош. |
|||
5
timurhv
26.09.24
✎
21:55
|
(4) ну это не показатель что 7.7 не могла, заказчик просит дату сохранять как дату (чтобы в фильтрах была структура ГОД-Месяц-Дата), а не строка (что делает 8-ка), автоматически задавать фильтры, формулы в ячейках и итогах таблицы, настройки печати листов чтобы сразу на А4 разбивалось и тд.
1С это все не сможет, да и оперативы жрет при больших табличных документах как в не себя (да даже пустой табличный документ вывести на условные 1млн строк сожрет ОЗУ на 14Гб), OpenXML явно лучше. |
|||
6
ptiz
26.09.24
✎
22:47
|
(0) поднять где-нибудь на винде файловую 1с с апачем специально для таких случаев, и радоваться жизни
|
|||
7
Кирпич
27.09.24
✎
08:20
|
(0) Если dll не устраивает, то накарябай скрипт на питоне каком нибудь и запускай из 1с
https://openpyxl.readthedocs.io/en/stable/ |
|||
8
alf2006x
27.09.24
✎
09:45
|
(1) Не... нужны именно разные листы в одной книге.
Разные - потому что для разных целей и с разной информацией. Но файл конечно должен быть один |
|||
9
alf2006x
27.09.24
✎
09:48
|
(2) фигасе... Вот прямо сейчас буду пробовать сабж.
Оч. заинтересовало. |
|||
10
alf2006x
27.09.24
✎
09:55
|
(3) Да, я на просторах нашёл конфигурацию с достаточно хорошо расписанными алгоритмами формирования XLSX "вручную" при помощи OpenXML-я. Но как-то пугает объем работ. Это возвращает в страшный сон, когда сначала колдуешь над макетом отчета, а затем этот макет со всеми его толщинами границ, стилями и цветами начинаешь вручную впихиваить в XML-и... жуткая картина рисуется (
|
|||
11
alf2006x
27.09.24
✎
09:58
|
(5) Плюсую. Именно это и надо заказчику.
А ещё графики, не 1С-ные (которые выглядят деревянными в excel) а нормальные, экселевские, в которые потыкать можно и получить кварк удовольствия от этого тыкания. |
|||
12
alf2006x
27.09.24
✎
09:59
|
(6) неееееет..... только не это... WMD (windows must die)
|
|||
13
alf2006x
27.09.24
✎
10:01
|
(7) а вот тут поподробнее, пожалуйста.
Скрипт что будет делать? И где? И как? (нужна только теория) |
|||
14
alf2006x
27.09.24
✎
13:32
|
(2) Потрясающе, превосходно, великолепно, грандиозно, изумительно, чудесно, волшебно, сногсшибательно!!!
Короче - то что надо! )) Спасибо огромное за съэкономленные мегаджоули! Файл выходит уже со всеми нужными листами!! Ну а бантики добавить можно и опыныксэмелем. |
|||
15
alf2006x
27.09.24
✎
13:34
|
И главное - всё работает на RedOS-е !
|
|||
16
alf2006x
27.09.24
✎
13:47
|
Ну, раз мы так быстро разобрались с основной проблемой, тогда вдогонку задам ещё вопрос про XML.
Вот есть у меня XML. Вот надо мне в нём поменять атрибут какого-то тега. Вот как по фэн-шую это сделать, а? Открыть ЧтениемXML я его могу,.. попрыгать по тегам и атрибутам я могу,.. а как внести изменения-то? Открывать ЗаписьXML и переносить всё "оттуда" -- "сюда" (пык-пык-пык), а там где надо подменять цыфирки и буковки? ЧтениеXML ведь записывать не умеет? (или в СП молоком где-то что-то об этом написано?) Или как вообще быть? (про хдто даже страшно думать... он там такого своего надобавляет,.. что ни один xlsx обратно не соберётся) |
|||
17
Chameleon1980
27.09.24
✎
15:55
|
фабрика.
почему страшно? все норм должно быть. |
|||
18
alf2006x
30.09.24
✎
10:38
|
(17) ОНО ОТКЛАДЫВАЕТ свои xmlns-ы в голову XML-я:
"Как же не страшно?.. Страшно, очень страшно... Если бы мы знали что это такое... Но мы не знаем что это такое..." |
|||
19
Garykom
гуру
27.09.24
✎
17:14
|
(0) 1. LibreOffice
2. Винда на клиентах (c MS Office) и/или на сервере 1С, СУБД с PostgreSQL линуксе 3. Wine и MS Office на линуксе 4. Табличный документ 5. Низкоуровневая работа с zip/xml для xlsx/docx, предварительная конвертация через 1-3 xls в xlsx |
|||
20
alf2006x
30.09.24
✎
10:30
|
(19) Спасибо. Богатый набор. Буду иметь в виду.
|
|||
21
alf2006x
30.09.24
✎
10:32
|
А всё-таки возвращаясь уже к работе с XML.
Как правильно вносить изменения в XML файл из-под 1С? Менять атрибуты, добавлять или удалять теги? |
|||
22
arsik
гуру
30.09.24
✎
11:00
|
(21) Гугл совсем отключили? https://infostart.ru/1c/tools/311011/
|
|||
23
DrZombi
гуру
30.09.24
✎
11:32
|
(0) Рецепт:
1. Поднимаете сервер Windows (на виртуалке) 2. устанавливаете Апач 3. Ставите тама 1С сервер Ставите Вэб Сервер 4. Разворачиваете любую 1С базу из семейства БСП (Демо) в которой будете объединять свои ексельки так как вам потребность диктует, а не обстоятельства :) |
|||
24
alf2006x
30.09.24
✎
12:23
|
(22) Спасибо. Про гуголь совсем забыл ))
Вопрос снят. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |