Atlassian companion excel не работает
В сегодняшней статье я хотел бы, как можно подробнее, рассмотреть интеграцию приложений Python и MS Excel. Данные вопрос может возникнуть, например, при создании какой-либо системы онлайн отчетности, которая должна выгружать результаты в общепринятый формат ну или какие-либо другие задачи. Также в статье я покажу и обратную интеграцию, т.е. как использовать функцию написанную на python в Excel, что также может быть полезно для автоматизации отчетов.
Работаем с файлами MS Excel на Python
Для работы с Excel файлами из Python мне известны 2 варианта:
Использование библиотек
Итак, первый метод довольно простой и хорошо описан. Например, есть отличная статья для описания работы c xlrd, xlwt, xlutils. Поэтому в данном материале я приведу небольшой кусок кода с их использованием.
Для начала загрузим нужные библиотеки и откроем файл xls на чтение и выберем
нужный лист с данными:
Теперь давайте посмотрим, как считать значения из нужных ячеек:
Как видно чтение данных не составляет труда. Теперь запишем их в другой файл. Для этого создам новый excel файл с новой рабочей книгой:
Запишем в новый файл полученные ранее данные и сохраним изменения:
Из примера выше видно, что библиотека xlrd отвечает за чтение данных, а xlwt — за запись, поэтому нет возможности внести изменения в уже созданную книгу без ее копирования в новую. Кроме этого указанные библиотеки работают только с файлами формата xls (Excel 2003) и у них нет поддержки нового формата xlsx (Excel 2007 и выше).
Чтобы успешно работать с форматом xlsx, понадобится библиотека openpyxl. Для демонстрации ее работы проделаем действия, которые были показаны для предыдущих библиотек.
Для начала загрузим библиотеку и выберем нужную книгу и рабочий лист:
Как видно из вышеприведенного листинга сделать это не сложно. Теперь посмотрим как можно считать данные:
Отличие от прошлых библиотек в том, что openpyxl дает возможность отображаться к ячейкам и последовательностям через их имена, что довольно удобно и понятно при чтении программы.
Теперь посмотрим как нам произвести запись и сохранить данные:
Из примера видно, что запись, тоже производится довольно легко. Кроме того, в коде выше, можно заметить, что openpyxl кроме имен ячеек может работать и с их индексами.
К недостаткам данной библиотеки можно отнести, то что, как и в предыдущем примере, нет возможности сохранить изменения без создания новой книги.
Как было показано выше, для более менее полноценной работы с excel файлами, в данном случае, нужно 4 библиотеки, и это не всегда удобно. Кроме этого, возможно нужен будет доступ к VBA (допустим для какой-либо последующей обработки) и с помощью этих библиотек его не получить.
Однако, работа с этими библиотеками достаточно проста и удобна для быстрого создания Excel файлов их форматирования, но если Вам надо больше возможностей, то следующий подпункт для Вас.
Работа с com-объектом
В своих отчетах я предпочитаю использовать второй способ, а именно использование файла Excel через com-объект с использованием библиотеки win32com. Его преимуществом, является то, что вы можете выполнять с файлом все операции, которые позволяет делать обычный Excel с использованием VBA.
Проиллюстрируем это на той же задаче, что и предыдущие примеры.
Для начала загрузим нужную библиотеку и создадим COM объект.
Теперь мы можем работать с помощью объекта Excel мы можем получить доступ ко всем возможностям VBA. Давайте, для начала, откроем любую книгу и выберем активный лист. Это можно сделать так:
Давайте получим значение первой ячейки и последовательности:
Как можно заметить, мы оперируем здесь функциями чистого VBA. Это очень удобно если у вас есть написанные макросы и вы хотите использовать их при работе с Python при минимальных затратах на переделку кода.
Посмотрим, как можно произвести запись полученных значений:
Из примера видно, что данные операции тоже довольно просто реализовываются. Кроме этого, можно заметить, что изменения мы сохранили в той же книге, которую открыли для чтения, что достаточно удобно.
Однако, внимательный читатель, обратит внимание на переменную i, которая инициализируется не 0, как принято python, а 1. Это связано с тем, что мы работаем с индексами ячеек как из VBA, а там нумерация начинается не с 0, а с 1.
На этом закончим разбор способов работы с excel файлами в python и перейдем к обратной задаче.
Вызываем функции Python из MS Excel
Может возникнуть такая ситуация, что у вас уже есть какой-либо функция, которая обрабатывает данные на python, и нужно перенести ее функциональность в Excel. Конечно же можно переписать ее на VBA, но зачем?
Для использования функций python в Excel есть прекрасная надстройка ExcelPython. С ее помощью вы сможете вызывать функции написанные на python прямо из Excel, правда придется еще написать небольшую обертку на VBA, и все это будет показано ниже.
Итак, предположим у нас есть функция, написанная на python, которой мы хотим воспользоваться:
На вход ей подается список, состоящий из списков, это одно из условий, которое должно выполняться для работы данной функции в Excel.
Сохраним функцию в файле plugin.py и положим его в ту же директорию, где будет лежать наш excel файл, с которым мы будем работать.
Теперь установим ExcelPython. Установка происходит через запуск exe-файла и не вызывает затруднений.
Когда все приготовления выполнены, открываем тестовый файл excel и вызовем редактор VBA (Alt+F11). Для работы с вышеуказанной надстройкой необходимо ее подключить, через Tools->References, как показано на рисунке:
Ну что же, теперь можно приступить к написанию функции-обертки для нашего Python-модуля plugin.py. Выглядеть она будет следующим образом:
Итак, что же происходит в данной функции?
Для начала, с помощью PyModule , мы подключаем нужный модуль. Для этого в качестве параметров ей передается имя модуля без расширения, и путь до папки в которой он находится. На выходе работы PyModule мы получаем объект для работы с модулем.
Затем, с помощью PyCall , вызываем нужную нам функцию из указанного модуля. В качестве параметров PyCall получает следующее:
- Объект модуля, полученный на предыдущем шаге
- Имя вызываемой функции
- Параметры, передаваемые функции (передаются в виде списка)
Теперь, чтобы убедиться в работоспособности нашей связки, вызовем нашу свежеиспеченую функцию на листе в Excel:
Как видно из рисунка все отработало правильно.
Надо отметить, что в данном материале используется старая версия ExcelPython, и на GitHub'e автора доступна новая версия.
Заключение
В качестве заключения, надо отметить, примеры в данной статье самые простые и для более глубоко изучения данных методов, я рекомендую обратиться к
документации по нужным пакетам.
Также хочу заметить, что указанные пакеты не являются единственными и в статье опущено рассмотрение, таких пакетов как xlsxwriter для генерации excel файлов или xlwings, который может работать с Excel файлами «на лету», а также же PyXLL, который выполняет аналогичные функции ExcelPython.
Кроме этого в статье я попытался несколько обобщить разборасанный по сети материал, т.к. такие вопросы часто фигурируют на форумах и думаю некоторым будет полезно иметь, такую «шпаргалку» под рукой.
I was wondering if anyone else was having issues with editing MS Excel docs with the Companion App? A specific example that we have been running into is editing Excel docs with locked fields. It throws an "Excel cannot open the file 'Example.xlsx' because the file format or file extension is not valid. ".
- Copy Link
1 answer
I'd like to test this out myself and see if I can replicate it. Could you tell me your Confluence and Microsoft Office versions?
Can you confirm that you are still able to edit Excel documents without locked fields? This sort of error can be seen if you're using an SSO with Confluence as well.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We are currently on Confluence version 6.11.2 and Microsoft Office 365 ProPlus version 1811. Now that I attempt to edit other Excel docs I'm finding that I'm getting this error across the board. We have had some cases of other users getting this error from time to time but not consistently with all Excel attachments. I checked with a few other users and it now seems that we are all getting this error across the board, any thoughts on what could be happening? Thank you!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Shannon and Brett, we're also running into the same issue. We are using SSO for authentication. Do you have any solution for instances with SSO?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thank you for confirming. If locked fields don't cause the issue, and you are using SSO, then I believe you ran into this bug:
- CONFSERVER-56444 Edit in App does not work when Confluence is integrated with Crowd SSO
@Shreya Rawal this may be the same bug you're running into.
The issue has since been resolved in Confluence versions 6.13.0 and 6.12.2.
Can you make sure your Confluence instances are running at least those versions and let us know if you still have the issue?
If you are NOT using SSO, please let me know, as it might be a different issue.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks, Shannon. We're running 6.12. We were able to get it to work with our SSO layer.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Sally Smith, Can you advise how you fixed this issue? I am also facing the same.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We are seeing an issue that matches this description since upgrading to 6.13.3. We have been unable to confirm if SSO is the issue as we cannot get the companion app to run.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Unfortunately I won't be any help as once we upgraded Confluence to v6.12.2 the issue was resolved for us. Currently we're on v6.15 and no issues noted.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ever since the recent update, we have been unable to open .xlsx files via Atlassian Companion. We get the error that the file extension is not allowed.
Has anyone else noticed this behavior?
- Copy Link
2 answers
A bug was introduced in Companion 1.2.3 which incorrectly blocked the opening on XLS and DOC files. We have since fixed this and released a new version, Companion 1.2.4. Please upgrade to the latest version (you can force this by quitting and restarting Companion if you are on the .exe or .dmg installer).
Regards,
Alex (Developer at Atlassian)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have version 1.2.5 and it is happening to me :-(
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Is this a new issue? Have you been able to edit files from this instance before?
This is definitely a different issue than the one reported in this community post. The file is not being blocked because it can't be downloaded in the first place due to what appears to be an authentication issue.
What version of Confluence are you using? Do you have a transparent SSO in front of the Confluence instance? I'm guessing this is an authentication issue, whereby Companion cannot authenticate with the JWT token alone. The error with "
Regards,
Alex K (Developer at Atlassian)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
thanks for the prompt reply.
Yes, it has always worked fine, and it is working for others in my organisation and so I believe it is something to do with me.
We have Confluence 7.8.1 and it was upgraded on the 9th Nov, 2020.
We have a F5 in front of Confluence, is that what you mean by transparent SSO?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks for the heads up, it was the F5.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi, Mark! Have you somehow find a solution to make Atlassian Companion work with confluence behind F5?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
We discovered the issue, in that here at Unisys, we run two VPN's. We run the company wide VPN, that allows us access to the Company wide data, and then we run our Business Unit VPN, where we spend most of our time. Confluence lives in the BU environment. When I had both VPN's active, the Company VPN took precedence, and the companion would then go off into the wider Company looking for Confluence and could not located it.
When I shut down the company VPN, all was well.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have not run into this on Confluence 7.5. Can you give us a little more context, like:
What version of Confluence server did you upgrade to?
And what browser are you using?
Планируете внедрение ПО Atlassian (Jira, Confluence)? Не хотите допустить жестоких ошибок в проектировании, которые потом придётся решать в последний момент?
Тогда вам сюда — рассматриваем внедрение Atlassian Jira + Confluence в корпорации с учётом различных технических аспектов.
Здравствуйте, я являюсь руководителем центра компетенции по продуктам Atlassian в РСХБ (Россельхозбанк) и отвечаю за развитие Системы управления жизненным циклом (СУЖЦ) построенной на программных продуктах Jira и Confluence.
В этой статье опишу технические аспекты построения СУЖЦ. Статья будет полезна всем, кто планирует к внедрению или занимается развитием систем построенных на ПО Atlassian в корпоративном окружении. Статья не требует специальных знаний и рассчитана на начальный уровень знакомства с продуктами компании Atlassian. Статья будет полезна администраторам, владельцам продукта, руководителям проектов, архитекторам, всем кто планирует внедрение систем на основе ПО Atlassian.
Введение
В статье будут рассмотрены технические вопросы внедрения Системы управления жизненным циклом (СУЖЦ) в корпоративном окружении. Давайте вначале определим, что же это значит.
А что значит корпоративное решение?
Это значит решение:
- Масштабируемое. В случае роста нагрузки, существует техническая возможность нарастить мощность системы. Разделяют горизонтальное и вертикальное масштабирование — при вертикальном масштабировании наращивается мощность серверов, при горизонтальном масштабировании увеличивается количество серверов для работы системы.
- Отказоустойчивое. Система останется доступной при выходе из строя одного элемента. В общем случае для корпоративных систем не требуется отказоустойчивости, но мы будем рассматривать именно такое решение. У нас в системе планируется несколько сотен конкурентных пользователей и простои будут очень критичны.
- Поддерживаемое. Решение должно находиться на поддержке у вендора. ПО без поддержки должно замещаться собственными разработками или другим ПО с поддержкой.
- Установка Self-managed (On-premise). Self-managed — это возможность устанавливать ПО не в облаке, а на собственных серверах. Если быть точнее, то это все варианты установки не SaaS. В этой статье мы будем рассматривать варианты установки только Self-managed.
- Возможность независимой разработки и тестирования. Для организации предсказуемых изменений в системе, требуются отдельные система для разработки (изменений в самой системе), система тестирования (Staging) и продуктивная система для работы пользователей.
- Другое. Поддерживает различные сценарии аутентификации, поддерживает аудит логи, имеет настраиваемую ролевую модель и т.д.
А что такое Система управление жизненным циклом (СУЖЦ)?
Если коротко, то в нашем случае это Atlassian Jira и Atlassian Confluence — система предоставляющая инструментарий для организации коллективной работы. Система не «навязывает» правила организации работы, а предоставляет разнообразный инструментарий для работы, это и Scrum, и Kanban-доски, и водопадная модель, и масштабируемый Scrum и т.д.
Название СУЖЦ не является отраслевым термином или общеупотребительным понятием, это просто название системы в нашем Банке. СУЖЦ для нас не является системой баг-трэккинга, не является системой Управления инцидентами и системой Управления изменениями.
В системе конечно же присутствует функционал и для баг-трэккинга, и для регистрации инцидентов, и для управления изменениями. И для тех или иных задач этот функционал используется. Но нельзя сказать, что все баги или все инциденты или все изменения регистрируется в нашей системе. В каждом конкретном случае своя специфика. Если какое-то подразделение использует Jira и ведёт там изменение, то для данного изменения, данная команда может решить вести там все баги, все изменения, все инциденты. Но это локальное решение одной отдельной команды, для одной конкретной задачи.
Что в себя включает внедрение?
Внедрение решения состоит из множества технических и организационных вопросов:
- Выделение технических мощностей.
- Закупка ПО.
- Создание команды по внедрению решения.
- Установка и конфигурация решения.
- Разработка архитектуры решения. Ролевой модели.
- Разработка эксплуатационной документации, включая инструкции, регламенты, технический проект, положения и т.д.
- Изменение процессов компании.
- Создание команды поддержки. Разработка SLA.
- Обучение пользователей.
- Другое.
Особенности Atlassian
Компания Atlassian является лидером во многих сегментах:
Техническая архитектура
Пояснения к схеме:
- На схеме приведена реализация в нашем Банке, данная конфигурация приводится, как пример и не является рекомендованной.
- nginx предоставляет функционал reverse-proxy и для Jira, и для Confluence.
- Отказоустойчивость СУБД реализовывается средствами СУБД.
- Перенос изменений между средами производится с использованием плагина Configuration Manager for Jira.
- AppSrv на схеме — это собственный сервер приложений для отчётности, не использует ПО Atlassian.
- БД EasyBI создана для построения кубов и отчётности с использованием плагина eazyBI Reports and Charts for Jira.
- Сервис Confluence Synchrony (компонента, позволяющая производить одновременное редактирование документов) не выделен в отдельную инсталляцию и запускается совместно с Confluence, на том же сервере.
Лицензирование
Вопросы лицензирования Atlassian заслуживают отдельной статьи, тут упомяну только общие принципы.
Главные вопросы с которыми мы встретились — это вопросы лицензирования редакций Data Center. Особенности лицензирования для редакций Server и Data Center:
Функциональный объём внедрения
Базовая поставка ПО Atlassian включает огромное количество возможностей, но зачастую возможностей, предоставляемых системой сильно не хватает. Иногда даже простейшие функции недоступны в базовой поставке, поэтому без плагинов не обойтись практически при любом внедрении. При этом важно понимать, Jira — это платформа, здесь можно запрограммировать любой функционал и плагины — это платная реализация дополнительного функционала. Для системы Jira мы используем следующие плагины (картинка кликабельна):
Для системы Confluence мы используем следующие плагины (картинка кликабельна):
Комментарии к таблицам с плагинами:
- Добавлено несколько визуальных инструментов;
- Улучшены интеграционные механизмы;
- Добавлен инструментарий для проектов по водопадной модели;
- Добавлен инструментарий для масштабируемого Scrum, для организации работы больших проектных команд;
- Добавлен функционал для ведения учёта времени;
- Добавлен инструментарий для автоматизации операций и конфигурирования решения;
- Добавлен функционал для упрощения и автоматизации администрирования решения.
Заключение
Итак, мы рассмотрели технические особенности внедрения системы на основе продуктов Atlassian. Предложенное решение представляет собой одно из возможных решений и хорошо подходит для корпоративного окружения
Предложенное решение — масштабируемое, отказоустойчивое, сдержит три среды для организации разработки и тестирования, содержит все необходимые элементы для совместной работы в системе и предоставляет широкий спектр инструментов для управления проектами.
Since recently, we receive the following error when trying to Edit a xls file stored in Confluence:
Atlassian Companion can't open this type of file.
Steps to reproduce:
- Access the attachments on a Confluence Page
- Click on Edit on the XLS file that was previously attached
This error message doesn't happen on XLSX files stored in the same page. This issue has been reported on mutiple computers for multiple XLS files stored in different pages so I'm wondering if the support for this older file type has been dropped recently.
Confluence Server: 7.7.4
Office: 365 (16.0.12527.21294) 32-bit
- Copy Link
2 answers
1 accepted
This was a new bug introduced in Companion version 1.2.3, we have subsequently released a new version, 1.2.4, that resolves this bug. Please upgrade to Companion 1.2.4 and you will be able to edit doc and xls files again.
Thank you for reporting the issue!
Regards,
Alex K (Developer at Atlassian)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks, this Works fine!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
What error message are you seeing?
Could you open up the "companion.log" file, by right clicking the Companion tray icon and then choosing the "View Logs" menu item. If you try editing the XLS file, the latest logs will be appended to the "companion.log", do you see any errors here?
Regards,
Alex (Dev at Atlassian)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi same problem here Today,
When openning the log file it seems like the companion app gets the wrong file extention:
info: adc:file-manager 2020-11-20T11:23:00.842Z Launching file on desktop: C:\Users\xxx\.atlassian-companion\81842c51-7f47-42ce-8cac-8af44cb5794d\xxx.xls
info: adc:file-manager 2020-11-20T11:23:00.843Z Trying to get file type using magic bytes:
info: adc:file-manager 2020-11-20T11:23:00.846Z shouldLaunchFileOnWindow: ,"applicationName":"Excel","fileExtention":"msi">
info: adc:file-manager 2020-11-20T11:23:00.846Z xxx.xls has an extension [msi]
info: adc:file-manager 2020-11-20T11:23:00.847Z xxx.xls contains an extension which is on the block list of execution
info: adc:file-manager 2020-11-20T11:23:00.847Z Discard launching file because it violates block-list
instead of xls it returns the file as an MSI installer wich of course is Blocked.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thank you for sharing the error log, this issue has now been fixed in Companion 1.2.4
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I can confirm the issue is now fixed in 1.2.4.
Thank you for your help!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Читайте также: