Имя: Пароль:
1C
 
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) Спасибо. Про гуголь совсем забыл ))
Вопрос снят.
Закон Брукера: Даже маленькая практика стоит большой теории.