Excel web app не удалось обработать запрос

Обновлено: 02.07.2024

Сразу оговорюсь, что Microsoft Office на сервере был установлен и при обычном запуске обработки (не в фоновом задании) все проходило на ура.

Так как фоновые задания выполняются от имени пользователя, под которым работает сервер 1С:Предприятие (обычно это USR1CV82), то возникло логичное предположение, то у этого пользователя не достаточно прав. Для эксперимента этому пользователю были выданы права администратора и фоновое задание завершилось успешно. Однако, это был не вариант. Требовались минимально возможные права и я окунулся в мир поиска информации в глобальной сети.

Итак. Первое что удалось выяснить, это то, что пользователю USR1CV82 необходимо дать права на запуск DCOM Microsoft Excel Application (прошу прошения, могу путаться в понятиях, но смысл, что делать, думаю, будет понятен).

Для этого необходимо:

1. Нажать кнопку Пуск и выбрать Панель управления.

2. Дважды щелкнуть значок Администрирование и выбрать пункт Службы компонентов.

3. В левой панели окна "Службы компонентов" дважды щелкнуть пункт Службы компонентов, дважды щелкнуть пункт Компьютеры и выбрать Мой компьютер.

4. Выбрать папку Настройка DCOM.

5. В окне сведений найти объект Microsoft Excel Application, щелкнуть его правой кнопкой и выбрать пункт Свойства (здесь есть подводный камень, с которым я довольно долго промучался - если сервер 64-х разрядный, то и выпуск Office так же должен быть х64, иначе объекта Microsoft Excel Application не будет в списке и права для него мне так и не удалось настроить пока не переустановил Office).

6. Открыть вкладку Безопасность.

7. В разделе Разрешения на запуск выбрать пункт Настроить и нажать кнопку Изменить.

8. Добавить пользователя USR1CV82.

Ниже поясняющие скриншоты.



Однако, после произведенных описанных выше настроек фоновое задание так и не заработало.

При работе с COM объектом экземляр Excel успешно создавался, но открыть файл не получалось

Произошла исключительная ситуация (Microsoft Excel): Приложению Microsoft Excel не удается получить доступ к файлу "C:\xls_test\test.xls". Это может быть вызвано одной из следующих причин.

• Указан несуществующий файл или путь.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент.

Поиски в просторах сети были продолжены и решение таки было найдено:

Необходимо создать папку

    для Windows Server x64

Данное расположение папок указано для Office 2007. Для Office 2010 не зависимо от разрядности платформы необходимо создавать папку C:\Windows\System32\config\systemprofile\Desktop (данный факт так же потратил не мало моего времени). В общем, если создали папку, а ошибки не исчезли, создайте вторую. Так же необходимо дать права на созданную папку пользователю USR1CV82. Практика показала, что достаточно прав, выдаваемых системой по умолчанию.

Загрузка
файла Хотите открыть или сохранить этот файл?

Причина

Эта проблема возникает из-за того, что Запрашиваемая операция в Office Online или Office Web Apps не поддерживает формат файла.

Решение

Чтобы просмотреть или изменить файл в Office Online или Office Web Apps, откройте файл в Microsoft Office Excel 2010, в Microsoft Office PowerPoint 2010 или Microsoft Office Word 2010, а затем сохраните файл, используя один из поддерживаемых форматов. В приведенной ниже таблице показаны рекомендуемые форматы файлов для Office Online и Office Web Apps.

Excel в Интернете
Excel Web App

Книга Excel (*. xlsx)
Двоичная книга Excel (*. xlsb)

Microsoft Word в Интернете
Word Web App

Документ Word (*. docx)

MicrosoftPowerPoint в Интернете
Приложение PowerPoint Web App

Презентация PowerPoint (*. pptx)

При сохранении XLS файла, содержащего макросы в формате XLSX, макрос не будет сохранен.

Макросы не будут работать в Microsoft Excel в Интернете или Excel Web App.

Дополнительные сведения

Для просмотра и редактирования в Office Online используйте следующую таблицу, чтобы узнать, какие форматы файлов поддерживаются.

Microsoft Word

Просмотр в Word в Интернете или в приложении Word Web App

Редактирование в Word в Интернете или в приложении Word Web App

Да, Word в Интернете или в приложении Word Web App преобразуются DOC-файлы в файл. docx, чтобы вы могли редактировать файл, но для сохранения изменений нужно сохранить файл в формате DOCX-файла.

Да, но макросы не работают.

Шаблоны (. dotm,. dotx)

Нет, необходимо открыть шаблон в клиенте.

Другие форматы файлов (dot, MHT, MHTML, htm,. HTML,. odt,. RTF,. txt,. XML,. WPS,. WPD)

Microsoft Excel

Просмотр в Excel в Интернете или Excel Web App

Редактирование в Excel в Интернете или Excel Web App

Не в SharePoint

Не в SharePoint.

Да. Однако при сохранении внесенных изменений вам будет предложено создать копию файла с удаленными макросами.

Другие форматы файлов (. xltx,. xltm,. xlam,. XLM. ). xla, xlt, XML-, XLL, PRN, кслв, ODS, oqy,. txt,. csv,. mdb,. MDE,. ACCDB,. ACCDE,. DBC,. ИГИ,. dqy. xla,. РКИ,. xla.

Microsoft PowerPoint

Просмотр вPowerPoint в Интернете или PowerPoint Web App

Редактирование вPowerPoint в Интернете или PowerPoint Web App

Open XML (PPTX, ppsx)

Двоичное (PPT, PPS)

Да,PowerPoint в Интернете или PowerPoint Web App преобразуются в файл с расширением. ppt или. PPS, чтобы вы могли редактировать файл, но для сохранения изменений необходимо сохранить файл в формате PPTX или ppsx.

Макрос (. pptm,. POTM,. ppam,. POTX,. PPSM)

Другие форматы файлов (. pot,. htm,. HTML,. MHT,. MHTML,. txt,. RTF,. wpd,. WPS,. PPA или. ODP,. thmx)

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Нам не удалось подключиться к серверу каталога для данного приложения.

Причина

Эта проблема возникает из-за неправильного URL-адреса на сервере каталога.

Решение

Существует два возможных конфигураций Microsoft Office Web Apps Server 2013 и Microsoft SharePoint Server 2013.

Приложения веб-сервера Office 2013

Чтобы устранить эту проблему, примените обновление KB2920737 для Office Web Apps Server 2013. Это обновление доступно только для ручной загрузки и установки на веб-узле центра загрузки Майкрософт.

Download

Примечание. Это обновление требует предварительной установки необходимых компонентов. Для установки этого обновления, см. .

SharePoint Server 2013

Чтобы устранить эту проблему, примените обновление KB2920760 для SharePoint Server 2013. Это обновление доступно только для ручной загрузки и установки на веб-узле центра загрузки Майкрософт.

Download

Примечание. Это обновление требует предварительной установки необходимых компонентов.

Корпорация Майкрософт проверила этот файл на наличие вирусов с помощью последней версии антивирусного программного обеспечения на момент публикации файла. Файл хранится на защищенных серверах, что предотвращает несанкционированное его изменение.

Корпорация Майкрософт проверила этот файл на наличие вирусов с помощью последней версии антивирусного программного обеспечения на момент публикации файла. Файл хранится на защищенных серверах, что предотвращает несанкционированное его изменение.

Сведения об обновлении

Сведения о перезагрузке компьютера

После установки этого обновления, возможно, потребуется перезагрузить компьютер.

Предварительное условие

Приложения веб-сервера Office 2013

Чтобы применить это обновление, необходимо иметь Microsoft SharePoint Server 2013, установил Office Web Apps Server 2013 или установлен .

SharePoint Server 2013

Для установки этого обновления необходимо установить обновление, или установлен .

Примечание. Это обновление не применяется к конфигурации Microsoft SharePoint, которые не имеют Office Web Apps Server 2013. Отдельное обновление потребуется устранить чтения Excel для Microsoft SharePoint Server.

Дополнительные сведения

После установки обновления или вы будете перенаправлены на соответствующую ссылку () вместо указанной ссылки ().

Ссылки

см. содержит последние административные обновления и материалы по развертыванию ресурсов для всех версий пакета Office.

Не секрет, что Excel довольно мощный инструмент для работы с числовыми табличными данными. Однако средства, которые предоставляет Microsoft для интеграции с ним, далеки от идеала. В частности, сложно интегрировать в Excel современные пользовательские интерфейсы. Нам нужно было дать пользователям Excel возможность работать с довольно насыщенным и функциональным интерфейсом. Мы пошли несколько другим путем, который в итоге показал хороший результат. В этой статье я расскажу, как можно организовать интерактивное взаимодействие Excel c веб-приложением на Angular и расшить Excel практически любым функционалом, который реализуем в современном веб-приложении.




Итак, меня зовут Михаил и я CTO в Exerica. Одна из проблем которые мы решаем — облегчение работы финансовых аналитиков с числовыми данными. Обычно они работают как с исходными документами финансовой и статистической отчетности, так и каким-либо инструментом для создания и поддержания аналитических моделей. Так сложилось, что 99% аналитиков работают в Microsoft Excel и делают там довольно сложные вещи. Поэтому перевести их с Excel на другие решения не эффективно и практически невозможно. Объективно, «облачные» сервисы электронных таблиц до функционала Excel пока не дотягивают. Но в современном мире инструменты должны быть удобны и соответствовать ожиданиям пользователей: открываться по клику мышки, иметь удобный поиск. А реализация в виде разных несвязанных приложений будет довольно далека от ожиданий пользователя.

То с чем работает аналитик выглядит примерно так:


Основные данные тут — это числовые «финансовые показатели», например, доход за 1 квартал 2020 года. Для простоты буду называть их дальше просто «числами». Как видно, почти никакой связи между числами в документе и в аналитической модели нет, все только в голове у аналитика. И работа с заполнением и поддержанием модели занимает часы поиска и перебивания чисел из документа в таблицы, а потом поиск ошибок ввода. Вместе этого мы хотели бы предложить пользователю привычные инструменты: «перетаскивание», вставка через клипборд и так далее, а также быстрый просмотр исходных данных.

Что у нас уже было


Связываем данные

Кроме UDF наш addin реализует ribbon (панель инструментов) с настройками и некоторыми полезными функциями по работе с данными.

Добавляем интерактивность


Вставляем данные в Excel

В нашем SPA мы подсвечиваем все числа, которые обнаружила система. Пользователь может выделять их, навигировать по ним и т.п. Для вставки данных мы реализовали 3 механизма, чтобы закрыть различные варианты использования:

  • Перетаскивание (drag-and-drop)
  • Автоматическая вставка по клику в SPA
  • Копирование и вставка через клипборд

Эти способы хороши, когда пользователю нужно вставлять в свою модель по одному числу, но если надо перенести целую таблицу или ее часть, необходим другой механизм. Наиболее привычным для пользователей представляется копирование через клипборд. Однако этот способ оказался сложнее первых двух. Дело в том, что для удобства вставляемые данные должны быть представлены в нативном для Excel формате — OpenXML Spreadsheet. Наиболее просто это реализуется используя объектную модель Excel, то есть из addin’а. Поэтому процесс формирования клипборда у нас выглядит так:

  • Пользователь выделяет область с числами в SPA
  • Массив выделенных чисел передается на Notification Service
  • Notification Service передает его в addin
  • Addin формирует OpenXML и вставляет его в клипборд
  • Пользователь может вставить данные из клипборда в любое место любой Excel-таблицы.


Несмотря на то, что данные проделывают довольно долгий путь, благодаря SignalR и RTD происходит это довольно быстро и абстрагированно от пользователя.

Распространяем данные

После того, как пользователь выбрал начальные данные для своей модели, их надо «распространить» все периоды (года, полугодия и кварталы), которые представляют интерес. Для этих целей одним из параметров нашей UDF является дата (период) данного числа (вспоминаем: «доход за 1 квартал 2020 года»). В Excel существует нативный механизм «распространения» формул, который позволяет заполнить ячейки той же формулой с учетом ссылок, заданных в параметрах. То есть вместо конкретной даты в формулу вставлена ссылка на нее, а далее пользователь «распространяет» ее на другие периоды, при этом в таблицу автоматически загружаются «те же» числа из других периодов.

А что это там за число?

Теперь у пользователя есть модель на несколько сотен строк и несколько десятков столбцов. И у него может возникнуть вопрос, что же там за число в ячейке L123? Чтобы получить ответ, у нас ему достаточно кликнуть на эту ячейку и в нашем SPA откроется тот самый отчет, на той самой странице, где записано кликнутое число, а число в отчете будет выделено. Вот так:


А если это не просто одно число из отчета, а результат некоторых вычислений на числах, взятых из отчета, то мы подсветим все числа, входящие в вычисляемое в Excel выражение. При этом не происходит загрузки всего приложения и подгрузки всех необходимых данных, как в случае перехода по ссылке.

В качестве заключения

Вот такая, на мой взгляд, нестандартная реализация взаимодействия между Excel и веб-приложением получилась довольно удобной для пользователя. Благодаря использованию Excel порог входа для пользователей из целевой аудитории довольно низкий. При этом мы получаем также всю мощь Excel по работе с числовыми данными. Сами данные всегда остаются связанными с источником, а также связанными во времени. Для целевых клиентов нет необходимости встраивать в бизнес-процесс работы с данными абсолютно новые внешние системы. Наше решение встраивается как дополнительный «инструмент» внутри Excel, что является стандартом де-факто для провайдеров финансовых данных.

Подобный архитектурный подход к интеграции веб-приложений с Microsoft Excel может быть применим и для решения других задач, требующих интерактива и сложных пользовательских интерфейсов при работе с числовыми и табличными данными.

image


Всем привет.
Наступил новый 2016 год, а значит пора обновить инструменты для упрощения скучной механической работы. Отделы аналитики, маркетинга, продаж часто сталкиваются со следующими трудностями при обновлении отчетности:
1. Данные приходится собирать воедино из нескольких источников.
2. Отчеты составляются в Excel, что накладывает значительные ограничения на объем обрабатываемых данных.
3. Внесение изменений в заранее настроенные разработчиками выгрузки дело как правило не самое быстрое.

Если отчеты нужно обновлять еженедельно или даже ежедневно, то эта процедура становится весьма напряжной даже для самых терпеливых. С помощью надстройки Excel Power Query и записи данных в MySQL можно свести обновление большинства отчетов до простого нажатия кнопки «Обновить»:
1. Данные из любого количества источников импортируются через SQL-запросы в обычные таблицы Excel.
2. Даже из большой базы можно записывать в Excel только небольшую часть данных (например, итоговые суммы за нужный диапазон дат с группировкой только по нужным столбцам).
3. Изменения в отчет можно вносить просто поменяв SQL-запрос. Далее формируем нужный отчет стандартными средствами Excel.

В этой статье я покажу как настраивать и автоматически заполнять простые базы данных MySQL (на примере выгрузки статистики всех ключевых слов из Яндекс Метрики), а потом одной кнопкой обновлять отчеты в Excel, используя надстройку Power Query. Power Query имеет весьма странные особенности работы при составлении SQL-запросов (особенно динамических), которые мы разберем во второй части статьи.

Выбор MySQL (или любой другой популярной базы данных) вполне очевиден — бесплатно, относительно просто, возможность работать с довольно большими базами данных без технических хитростей. В качестве примера будем использовать Amazon Web Services: дешево (в большинстве случаев используемый инстанс будет бесплатен для вас в течение 12 месяцев).

В целях безопасности лучше выставлять ограничения на IP-адрес. Если у вас динамический IP, то это проблемная опция. Также иногда ограничение доступа к MYSQL по IP вызывает ошибку в Excel. Если выставить любой IP, то все работает.

image

После этих действий на вашем инстансе должна открываться такая страница:

image

3. Заходим под пользователем root и паролем, который вводили при настройке. Для доступа к базе данных «извне» (т. е. из Excel) нам потребуется пользователь, отличный от root. Заводим его в интерфейсе phpMyAdmin в меню Пользователи --> Добавить пользователя. Добавим пользователя stats, зададим пароль и назначим ему привилегии SELECT и INSERT. Итого получим:

image

4. Теперь создадим базу данных data:

image

5. В данном примере будем наполнять базу статистикой посещений по ключевым словам из Яндекс Метрики. Для этого создадим таблицу seo (обратите внимание, что у столбца id надо отметить опцию A_I (auto increment)):

6. Для получения статистики по ключевым словам из Яндекс Метрики можно использовать следующий скрипт. В качестве параметров нужно указать начальную и конечную дату выгрузки (переменные $startDate и $endDate), авторизационный токен (в коде есть описание как его получить), номер счетчика, из которого нужно получить статистику, и параметры базы данных: ID инстанса, логин (у нас «stats»), пароль и название базы (у нас «data»). Скопируйте в корневую папку инстанса этот код и запустите командой «php seo.php».

image

Если возникнут ошибки при соединении с базой, то они отобразятся в консоли и выполнение будет прервано. В случае успешного выполнения получим статистику ключевых слов за выбранный период:

Отлично, данные получены. Посмотрим как получать их в Excel.

image

1. После установки выбираем MySQL:

image

3. В открывшемся окне дважды кликаем на таблицу seo и получаем:

В этом окне можно управлять запросами, изменяя столбцы и количество строчек. Когда база данных небольшая, то это работает. Однако если размер данных превышает даже 20MB, то Excel на большинстве компьютеров просто повиснет от такого запроса. К тому же неплохо бы менять даты запроса или другие параметры.

image

1. Сначала составляем таблицу, в которой указываем нужные нам параметры. В нашем примере это дата выгрузки. Формат ячеек со значениями лучше выставить как тестовый, т. к. Excel любит изменять формат ячеек по своему усмотрению:

image

2. Создадим запрос Power Query «Из таблицы», который будет просто дублировать эту таблицу:

image

3. В опциях запроса обязательно укажите формат второго столбца как Текст, иначе последующий SQL-запрос будет некорректным. Далее жмем «Закрыть и загрузить».

Итого мы получили запрос Power Query к обычной таблице, из которого будет брать значение начала и конца выгрузки.

image

Чтобы сделать SQL-запрос потребуется отключить одну опцию: заходим в Параметры и настройки --> Параметры запроса --> Конфиденциальность и выбираем «Игнорировать уровни конфиденциальности для возможного улучшения производительности». Жмем Ок.

image

4. Теперь делаем запрос к нашей базе данных, указывая в качестве начала и конца периода значения таблицы из пункта 3. Снова подключаемся к базе в Power Query и нажимаем «Расширенный редактор» в меню.

Например, мы хотим получить сумму визитов, которые принесли ключевые слова, содержащие «2015». На языке M запрос выглядит так:
let
Source = MySQL.Database("ec2-. compute.amazonaws.com", "data", [Query &Text.From(Таблица1[Значение])&"' and endDate<='"&Text.From(Таблица1[Значение])&"' and query like '%2015%';"])
in
Source

В параметрах startDate и endDate указываются значения в таблице из пункта 3. При запросе «Для выполнения этого собственного запроса к базе данных необходимы разрешения» жмем «Редактировать разрешение», проверяем, что все параметры подтянулись корректно и выполняем запрос. Теперь полученный ответ от SQL-запроса можно обработать обычными формулами Excel в привычном вам виде.

image

5. Важно! Когда вы будете обновлять выгрузку в следующий раз, то это приходится делать следующим способом (другие почему-то дают ошибку):
— меняем даты в таблице из пункта 1
— заходим в меню Данные --> Подключения и нажимаем «Обновить все»:

В этом случае все запросы выполнятся корректно и ваши отчеты обновятся автоматически. Итого для обновления отчета вам потребуется только изменить параметры запроса и нажать «Обновить все».

Читайте также: