|   |   | 
| 
 | 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) Спасибо. Про гуголь совсем забыл ))
 Вопрос снят. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |