powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с использованием Interop Excel
18 сообщений из 18, страница 1 из 1
Проблема с использованием Interop Excel
    #39225794
semI-PACK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Есть приложение, которое должно вносить определенные изменения в Excel файл.

Ниже часть кода

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace WindowsFormsApplication3
{
public class RunApp
{
public static void Run()
{
string PathUnloadTemplate = Application.StartupPath + "\\template.xls";
object missingValue = Type.Missing;
LocalLog.AddLog("start");

try
{
Excel.Application ExcelApp = new Excel.Application();

ExcelApp.DisplayAlerts = false;
//ExcelApp.DefaultSaveFormat = Excel.XlFileFormat.xlExcel7;


try
{
ExcelApp.Workbooks.Open(PathUnloadTemplate, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, true);
LocalLog.AddLog("ExcelApp.Workbooks.Open SUCCESS");
}
catch (Exception exc)
{
LocalLog.AddLog("ExcelApp.Workbooks.Open ERRORRRRRRRRRRRRRRRRRRRRRRRRRRR");
LocalLog.AddLog(exc.ToString());
return ;
}

ExcelApp.ActiveWorkbook.SaveAs(PathUnloadTemplate, missingValue, missingValue, missingValue, missingValue, missingValue, Excel.XlSaveAsAccessMode.xlNoChange, missingValue, missingValue, missingValue, missingValue, missingValue);
LocalLog.AddLog("end");

}
catch (Exception exc)
{
LocalLog.AddLog(exc.ToString());
return;
}
}
}
}


Класс LocalLog пишет лог в текстовый файл. Приложение работает. Все ок. Проблемы начинаются при попытке запуска приложения из Планировщика задач (кстати при запуске из ms sql по команде xp_cmdshell аналогичная проблема).

При выполнении строки

ExcelApp.Workbooks.Open...

программа падает в catch и выводит следующее сообщение:

27.04.2016 15:00:00 - System.Runtime.InteropServices.COMException (0x800A03EC): Приложению Microsoft Excel не удается получить доступ к файлу "D:\2\template.xls". Это может быть вызвано одной из следующих причин.

• Указан несуществующий файл или путь.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент.
в Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
в WindowsFormsApplication3.RunApp.Run()

Подскажите пож-та в чем может быть дело?
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225804
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semI-PACK, судя по всему, прав не хватает у шедулера. Смотрите в сторону windows scheduler permissions.
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225807
semI-PACK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AxeleronsemI-PACK, судя по всему, прав не хватает у шедулера. Смотрите в сторону windows scheduler permissions.

Было бы здорово, если бы так просто решалось, но нет. Добавлялась задача от имени Администратора, учетная запись была выбрана текущая, под которой выполнение происходит без ошибок.
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225811
semI-PACK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Были подозрения, что проблема в CurrentCulture (проблема описана тут - http://www.made4dotnet.com/Default.aspx?tabid=141&aid=15). Но тоже не помогло.
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225812
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У экселя есть еще такая багофича что он не работает без профиля пользователя. Надо создать папку
Код: c#
1.
C:\Windows\System32\config\systemprofile\Desktop
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225813
semI-PACK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225820
semI-PACK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TУ экселя есть еще такая багофича что он не работает без профиля пользователя. Надо создать папку
Код: c#
1.
C:\Windows\System32\config\systemprofile\Desktop



Создал, не помогло :(
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225828
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что будет, если шедулить через ncron ?
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225834
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему вы пытаетесь сделать WindowsForms Application ?
вам нужно делать Console Application
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225835
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semI-PACK,
а если запустить программу через планировщик, только от себя - то есть в планировщике выбираешь свою задачу и вызываешь пункт меню "Выполнить", то происходит exception или нет?
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225839
semI-PACK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vladimir Baskakovа что будет, если шедулить через ncron ?

Не работал с ним, а чем он существенно может отличаться от стандартного виндового, используемого просто для запуска приложения?
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225840
semI-PACK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vb_subsemI-PACK,
а если запустить программу через планировщик, только от себя - то есть в планировщике выбираешь свою задачу и вызываешь пункт меню "Выполнить", то происходит exception или нет?

Пробовал, также ошибка пишется в лог.
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225843
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semI-PACKDima TУ экселя есть еще такая багофича что он не работает без профиля пользователя. Надо создать папку
Код: c#
1.
C:\Windows\System32\config\systemprofile\Desktop



Создал, не помогло :(
у меня после этого шаманства из планировщика без пользовательской сессии через COM эксель начинал работать.
Создай еще эту папку
Код: c#
1.
C:\Windows\SysWOW64\config\systemprofile\Desktop


systemprofile - это профиль пользователя, который используется при запуске без пользовательской сессии. А экселю зачем-то нужна папка Desktop
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225849
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semI-PACK,

попробуй путь к xls файлу прописать константой на локальной машине ("C:\test\" и позапускать.
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225853
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semI-PACK, кстати, а точно процесс Экселя не висит в задачах? Такое бывает когда самого Экселя даже не видно.
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225860
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже все-таки в папках дело. Вторую создал?
https://social.msdn.microsoft.com/Forums/en-US/b81a3c4e-62db-488b-af06-44421818ef91/excel-2007-automation-on-top-of-a-windows-server-2008-x64?forum=innovateonoffice The open operation ends in this exception:

Service cannot be started. System.Runtime.InteropServices.COMException (0x800A03EC) ...

Answers:
This solution is ...
・Windows 2008 Server x64
Please make this folder.
C:\Windows\SysWOW64\config\systemprofile\Desktop

・Windows 2008 Server x86
Please make this folder.
C:\Windows\System32\config\systemprofile\Desktop

...instead of dcomcnfg.exe.
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225911
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semI-PACKVladimir Baskakovа что будет, если шедулить через ncron ?

Не работал с ним, а чем он существенно может отличаться от стандартного виндового, используемого просто для запуска приложения?

бесхитросностью. он точно запускает все из под того же пользователя где сам, как будто руками. у меня такое ощущение сложилось.
...
Рейтинг: 0 / 0
Проблема с использованием Interop Excel
    #39225938
semI-PACK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TПохоже все-таки в папках дело. Вторую создал?


Вторую создал. Как ни странно, но проблема оказалась именно в этом. Всем спасибо за советы, тему можно закрыть.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с использованием Interop Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]