2010-10-29 3 views
0

Я создал приложение Office Excel на своей машине (XP). и я разместил приложение на сервере Windows 2008, указав следующую ошибку.Microsoft Office Excel не может получить доступ к файлу

Microsoft Office Excel не может получить доступ к файлу '\ server \ Input.xls'. Существует несколько возможных причин:

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

клиент и сервер система установлена ​​офис 2007 и добавила ссылочный microsoftexcellibrary 12,0

созданной сборка для приложения и вызов кода из формы.

+0

Вы проверили все возможные причины? Что было результатом этой проверки? –

+0

Вы должны быть более конкретными, чем «сервер Windows». И электронная таблица Excel не является автономным приложением. «созданная сборка для приложения и вызов кода из формы»: как эта форма и VB.Net exe предназначены для взаимодействия с файлом? Office VBA не является VB.Net. VB.Net - это не Excel. Хотя было бы хорошо, если бы это было так. В качестве обходного пути VBA всегда имеет доступ к классу COM класса «Scripting.FileSystemObject». –

ответ

0

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

Первый вопрос выглядит наиболее вероятным, путь выглядит как частичный путь или неправильный путь UNC. Попробуйте поместить полный путь в таблицу «C: \ server \ input.xls» и посмотреть, работает ли это.

Чтобы остановить среднюю точку, в команде workbook.open вы можете указать, что нужно открывать только для чтения, это гарантирует, что приложение может красить файл, даже если он заблокирован другим пользователем.

Надеется, что это помогает

+0

Я тестировал одно и то же приложение на локальной машине, оно работает. когда я поставил ту же логику на сервере, она дает ошибку. – Nag

+0

Возможно, электронная таблица на сервере открыта кем-то другим (поскольку я не знаю макет ваших систем), поэтому она будет работать с вашей локальной версией, но сбой на сервере. Также возможно, что у вас есть другая версия таблицы в вашей локальной системе, которая по отношению к exe будет доступна для обнаружения, но в относительном пути на сервере нет электронной таблицы. – DJIDave

+0

Я использую общий путь от другого сервера. – Nag

2

я получал ту же самую ошибку, хотя в моем случае я пытался бежать (от Tidal Enterprise Scheduler) в приложении .NET, который используется microsoft.interop.excel.

Ответ уже находится в stackoverflow: [Microsoft Office Excel cannot access the file 'c:\inetpub\wwwroot\Timesheet\App_Data\Template.xlsx'.

Я повторно список шагов от этой ссылке:

  1. Создать каталог «C: \ Windows \ SysWOW64 \ Config \ systemprofile \ Desktop» (для 64-разрядной Windows) или «C: \ Windows \ System32 \ Config \ systemprofile \ Desktop»(для 32-разрядной Windows)

  2. Установите полные права управления на директории Desktop выше (например, в Win7 & IIS 7 & DefaultAppPool набор разрешений для пользователя„IIS AppPool \ DefaultAppPool“)

Конечно, если вы выполняете запланированную задачу, а не WebApp, вам необходимо убедиться, что учетная запись службы, с которой вы работаете, имеет разрешения на эту папку.

0

Я была такая же ошибка при попытке сохранить в:

C:\test.xlsx 

При попытке сохранить в корневой каталог, он, казалось, вызвать проблемы.Изменение моего пути:

C:\MyExcelTests\test.xlsx 

работал отлично

Смежные вопросы