Содержание
- Открыть Excel через ADODB в 1С х64
- Excel.Application где взять
- Excel application не найден
- Excel application не найден
- Что такое DCOM
- Настройка DCOM для Excel.Application
Открыть Excel через ADODB в 1С х64
Здравствуйте.
Раньше в х32 1С открывал Excel таким кодом
Стр_Конект = «Driver=;
|DriverId=790;
|Dbq=»+Стр_Файл+»;
|DefaultDir=»+Стр_Путь+»;»;
Об_Конект = Новый COMОбъект(«ADODB.Connection»);
Попытка
Об_Конект.Open(Стр_Конект);
Исключение
Сообщить («Невозможно подключится к Microsoft Excel Driver.
|Возможно файл [«+Стр_Файл+»] открыт другим пользователем.»);
Возврат;
КонецПопытки;
Теперь выдает ошибку на этапе Об_Конект.Open(Стр_Конект);
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Excel] Файл ‘(нет данных)’ не может быть открыт ядром базы данных Microsoft Jet. Файл уже открыт другим пользователем для монопольного доступа или требуется разрешение на просмотр данных.
Куда копать? Что подправить в строке коннекта?
(0) ODBC тут лишнее
MyCon = Новый COMОбъект («ADODB.Connection»);
Попытка
MyCon.Open («Provider=Microsoft.ACE.OLEDB.12.0;Data Source=»+ОБъект.ПутьКфайламБюджета+»;Extended Properties=»»Excel 12.0;HDR=Yes;IMEX=1;»»»);
Исключение
Сообщить(«Не удалось открыть файл->»+ОБъект.ПутьКфайламБюджета+» Проверьте путь и тип файла»);
Сообщить(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат;
КонецПопытки;
(1)Спасибо. На х32 код работает, а на х64 нет.
Ругается
Произошла исключительная ситуация (Microsoft OLE DB Service Components): Заглушке переданы неправильные данные.
Может что-то кроме Microsoft.ACE.OLEDB.12.0 надо в com+ прописать?
(3) я в службе компонентов его com+ сопоставил по типу Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С. Без этого ругался на Provider=Microsoft.ACE.OLEDB.12.0.
Теперь вот на заглушку
(6) У меня как раз 64.
Попробовал и я, тоже не срабатывает. Причина другая.
Сообщений 2:
Не удалось открыть файл->C:DBАзыExtRepsPL VAP FY17.xlsx Проверьте путь и тип файла
Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
Но у меня нет ACE
(8) ну драйвер похоже ставить надо Microsoft.ACE.OLEDB.12.0 х64. Но для этого надо офис снести х32, неохота.
Через обертку com+ избавился от ошибки «поставщика». Но появились другие.
А так не пойдёт? Поскольку Excel установлен..
Попытка
Excel = Новый COMОбъект(«Excel.Application»);
Исключение
Сообщить(«Не найден Microfoft Excel.»);
Возврат Ложь;
КонецПопытки;
Попытка
WorkBook = Excel.WorkBooks.Open(ФайлExcel );
Исключение
Сообщить(«Excel не удалось открыть файл » + ФайлExcel );
Возврат Ложь;
КонецПопытки;
Платформа какая?
С 8.3.6 уже можно этим пользоваться:
ДанныеФайлаТабличныйДокумент = Новый ТабличныйДокумент;
ДанныеФайлаТабличныйДокумент.Прочитать(ИмяВремФайла);
Источник
Excel.Application где взять
Ну по идее конечно то. Наверное. Может я не так код пишу?
Попытка
Excel = новый COMОбъект(«Excel.Application»);
Исключение
Сообщить(«Эксель не найден»);
Возврат;
КонецПопытки;
У меня исключение срабатывает.
Перем Об_Конект;
Перем Об_РекордСет;
Функция ПодключитьсяКБазе()
Состояние(«Подключание к базе «+ПутьИФайл);
Файл=Новый Файл(ПутьИФайл);
Если Файл.Существует() Тогда
Стр_Файл=Файл.ПолноеИмя;
// Отрезаем слеш если он есть в конце пути
Стр_Путь=Файл.Путь;
Если Прав(Стр_Путь,1)=»» Тогда
Стр_Путь=Лев(Стр_Путь,СтрДлина(Стр_Путь)-1);
КонецЕсли;
// Строка коннекта
Стр_Конект = «Driver=;
|DriverId=790;
|Dbq=»+Стр_Файл+»;
|DefaultDir=»+Стр_Путь+»;»;
Об_Конект = Новый COMОбъект(«ADODB.Connection»);
Попытка
Об_Конект.Open(Стр_Конект);
Состояние(«»);
Возврат Истина;
Исключение
Сообщить («Не возможно подключится к Microsoft Excel Driver.
|Возможно файл [«+Стр_Файл+»] открыт другим пользователем.»);
Состояние(«»);
Возврат Ложь;
КонецПопытки;
Иначе
Сообщить(«Файл «+ПутьИФайл+» не найден!»);
Состояние(«»);
Возврат Ложь;
КонецЕсли; //Файл.Существует()
Если Об_Конект = Неопределено Тогда
Если Не ПодключитьсяКБазе() Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Стр_SQL = «SELECT DISTINCT [Подразделение возникновения] FROM [«+СокрЛП(ИмяЛиста)+»$]»;
Об_РекордСет = Новый COMОбъект(«ADODB.Recordset»);
Попытка
Об_РекордСет=Об_Конект.Execute(Стр_SQL);
Исключение
Сообщить(«Не удадлось выполнить запрос к файлу Excel
|»+ ОписаниеОшибки(),СтатусСообщения.Важное);
Возврат;
КонецПопытки;
Пока НЕ Об_РекордСет.EOF Цикл
ОбработкаПрерыванияПользователя();
НаименованиеФилиала = Об_РекордСет.Fields(«Подразделение возникновения»).value;
Ну вот как-то так я для себя это открывал с помощью googl и не так долго.
Источник
Excel application не найден
Поможите, люди добрые!
Уже не знаю, куда копать.
Система Windows XP, Office 2003, VFP 9.
Excel установлен.
На моем компе это работает как часы, у коллеги из Вологды не желает.
LOCAL oExcel
oExcel=CREATEOBJECT(‘excel.Application’)
oBook=oExcel.Workbooks.add
oExcel.visible=.t.
Это про Ваш комп или комп коллеги
Re: class definition excel.application is not found |
---|
rhs72
Сообщений: 1934 |
Re: class definition excel.application is not found |
---|
tata Автор |
Сообщений: 3365
Откуда: Казань
Дата регистрации: 23.10.2005
Re: class definition excel.application is not found |
---|
SoccerStudio
Сообщений: 5055 |
Re: class definition excel.application is not found |
---|
tata Автор |
Сообщений: 3365
Откуда: Казань
Дата регистрации: 23.10.2005
может с правами пользователя связано?
а если админом?
Исправлено 1 раз(а). Последнее : Penner, 05.11.08 15:23
Re: class definition excel.application is not found |
---|
Penner
Сообщений: 4102 |
Re: class definition excel.application is not found |
---|
SoccerStudio
Сообщений: 5055 |
IMHO, вы больше времени потеряете на игру с параметрами в реестре и т.д. и т.п. Проще, как показывает практика, установить на машине все тоже самое (вплоть до релиза!). С другой стороны, пока не разберешься (да и самому интересно!), не поймешь как решать в дальнейшем такие (и подобные!) задачи. Вопрос времени.
Re: class definition excel.application is not found |
---|
sphinx
Сообщений: 30311 |
Re: class definition excel.application is not found |
---|
Ydin
Сообщений: 7608 |
Во-первых, необходимо визуально, либо программно проверить факт инсталляции Excel на компьютере и определить установленную версию Excel, проверив наличие соответствующих ключей в реестре, приведенных на рисунке ниже:
[attachment 7150 Excel.JPG]
Эти ключи, собственно, и описывают объект «Excel.Application», который Вы пытаетесь создать и терпите неудачу. При отсутствии ключа в реестре — объект совершенно точно создан быть не может!
Во-вторых, программно лучше проверять наличие Excel так (особенно, если пункт 1 опущен!):
Т.к. мало-ли некондиционных «пираток» у клиентов встечается, в т.ч. просто переписанных на компьютер!
А, в-третьих, мне реально встречалась такая «битая» некондиционная Excel 2003 (сборка 11.5612.5703). Проверьте, не она ли установлена у Вашего клиента? Вот пример, который должен работать на всех версиях Excel, старше 9.0 (2000), но на версии 11.5612.5703 не работает (обнаружено опытным путём):
В-четвертых: IMHO лучше перейти на OpenOffice, который можно бесплатно и совершенно легально переписать всем своим клиентам. Поддержка .DOC, .XLS, .DOCX и .XLSX там полная.
Исправлено 1 раз(а). Последнее : rvc44, 06.11.08 18:12
Источник
Excel application не найден
Добрый день! Уважаемые читатели и гости, популярного IT блога pyatilistnik.org. Сегодня я продолжу пополнять свою копилку знаний в разделе 1С. Вчера меня один из разработчиков, попросил ему помочь настроить компоненты DCOM для Excel.Application в связке с приложением 1С. Я ранее этого не делал, так что пришлось в этом разбираться. По итогам найденного решения, появилась и эта заметка. Уверен, что на этот материал найдутся желающие.
Что такое DCOM
Distributed Component Object Model (DCOM) — программная архитектура, разработанная компанией Microsoft для распределения приложений между несколькими компьютерами в сети. Программный компонент на одной из машин может использовать DCOM для передачи сообщения (его называют удаленным вызовом процедуры) к компоненту на другой машине. DCOM автоматически устанавливает соединение, передает сообщение и возвращает ответ удаленного компонента. С данным компонентов мы уже знакомились, когда решали ошибку 10016.
И так у меня есть виртуальная машина под управлением Windows Server 2012 R2, на ней установлены серверные компоненты 1С, есть задача для Excel.Application модуля, настроить DCOM компоненты.
Нам необходимо открыть в панели управления Windows, компонент «Службы компонентов».
Либо можете, через окно выполнить ввести DCOMCNFG, откроется, тоже самое.
В службах компонентов (Component Services) откройте ветку:
Если по каким-то причинам у вас нет пункта Microsoft Excel Application, откройте реестр Windows, найдите ветку: HKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем ее. В ней должен быть ключ REG_SZ со значением .
КОМУ ЛЕНЬ самому создавать, то можете скачать данный ключ реестра у меня. Просто запустите потом и подтвердите, что согласны добавить. Затем откройте командную строку от имени администратора и выполните команду:
У вас откроется mmc оснастка «Службы компонентов», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты. В результате этих манипуляций компонент Microsoft Excel Application у вас должен появиться. Открываем свойства Microsoft Excel Application.
Переходим на вкладку «Безопасность (Secutity)». В пункте «Разрешения на запуск и активацию (Launch and Activation Permissions)», выберите «Настроить (Customize )» и изменить. Вам нужно добавить сюда учетную запись, от имени которой запускается служба 1С и предоставить ей права:
- Локальный запуск — Local Launch
- Локальная активация — Local Activation
Далее переходим к пункту «Разрешения на доступ (Access Permissions)» и так же меняем их. Добавьте там ту же учетную запись, от имени которой запускается сервис 1С, и дайте ей права «Локальный доступ (Local Access)». Сохраните настройки.
Закрываем окно служб компонентов, теперь для того, чтобы закончит ьнастройку DCOM для 1С и Microsoft Excel Application, вам необходимо дать права на две папки.
Вам нужно убедиться, что у вас есть две папки:
Источник
Adblock
detector
Re: class definition excel.application is not found |
---|
rvc44
Сообщений: 2211 |
Перем Об_Конект;
Перем Об_РекордСет;
Функция ПодключитьсяКБазе()
Состояние(«Подключание к базе «+ПутьИФайл);
Файл=Новый Файл(ПутьИФайл);
Если Файл.Существует() Тогда
Стр_Файл=Файл.ПолноеИмя;
// Отрезаем слеш если он есть в конце пути
Стр_Путь=Файл.Путь;
Если Прав(Стр_Путь,1)=»» Тогда
Стр_Путь=Лев(Стр_Путь,СтрДлина(Стр_Путь)-1);
КонецЕсли;
// Строка коннекта
Стр_Конект = «Driver={Microsoft Excel Driver (*.xls)};
|DriverId=790;
|Dbq=»+Стр_Файл+»;
|DefaultDir=»+Стр_Путь+»;»;
Об_Конект = Новый COMОбъект(«ADODB.Connection»);
Попытка
Об_Конект.Open(Стр_Конект);
Состояние(«»);
Возврат Истина;
Исключение
Сообщить («Не возможно подключится к Microsoft Excel Driver!!!
|Возможно файл [«+Стр_Файл+»] открыт другим пользователем.»);
Состояние(«»);
Возврат Ложь;
КонецПопытки;
Иначе
Сообщить(«Файл «+ПутьИФайл+» не найден!»);
Состояние(«»);
Возврат Ложь;
КонецЕсли; //Файл.Существует()
КонецФункции
Если Об_Конект = Неопределено Тогда
Если Не ПодключитьсяКБазе() Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Стр_SQL = «SELECT DISTINCT [Подразделение возникновения] FROM [«+СокрЛП(ИмяЛиста)+»$]»;
Об_РекордСет = Новый COMОбъект(«ADODB.Recordset»);
Попытка
Об_РекордСет=Об_Конект.Execute(Стр_SQL);
Исключение
Сообщить(«Не удадлось выполнить запрос к файлу Excel
|»+ ОписаниеОшибки(),СтатусСообщения.Важное);
Возврат;
КонецПопытки;
Пока НЕ Об_РекордСет.EOF Цикл
ОбработкаПрерыванияПользователя();
НаименованиеФилиала = Об_РекордСет.Fields(«Подразделение возникновения»).value;
Об_РекордСет.MoveNext();
КонецЦикла;
Ну вот как-то так я для себя это открывал с помощью googl и не так долго…
- Remove From My Forums
-
Question
-
Hi,
Thanks in advance.
Iam facing 1-error » Class Definition Excel.Application is not found «. when I am using the same program from LAN
no problem.
But when Iam accessing from remote sites it’s showing «Class definition Excel.Application is not found». Because when I connected remotely, simply its accessing only that mapped folder. So how to solve this problem?
I need my superiors guidence.
Select * from dut_rept WHERE (sl_no#0) ORDER BY sl_no into Cursor CursA
select CursA
Copy to Emp_ot_hrs type xls
#include ‘\paramusvrcomp_deptPIS_employeexlConstants.h’
loExcel = Createobject(«Excel.Application»)
loExcel.workbooks.Open(‘\paramusvrcomp_deptPIS_employeeemp_ot_hrs’)
Kindly guide me.
From
PARAMU
Answers
-
It seems it is missing something…If all runtime files are ok then try to put, in same folder with exe file, files wizstyle with extensions vct and vcx ….
-
Check if Excel is really installed on that machine and creating excel applicaion is allowed (DCOM).
You can work around by installing ACE Oledb driver and using OLEDB instead. Check foxite.com msg. id 153776 for sample.
I am trying to run a file I downloaded to import and export data from excel.
I downloaded from from the following site:
http://www.sattsoft.com/sourcecodes/details/1/9/import-export-data-to-excel-using-vb-net.html
When I run the file the error comes on the following lines
Dim xlApp As Microsoft.Office.Interop.Excel.Application
Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
These are the errors that come on those respective lines
Type «Microsoft.Office.Interop.Excel.Application is not defined»
Type «Microsoft.Office.Interop.Excel.Workbook is not defined»
Type «Microsoft.Office.Interop.Excel.Worksheet is not defined»
What I want to do is to run the file without the errors so that I can import and export data from excel to vb.net datagridview.
I am using Excel 2010 and visual studio 2010
How do I get around this error so I can run the file?
Добрый день! Уважаемые читатели и гости, популярного IT блога pyatilistnik.org. Сегодня я продолжу пополнять свою копилку знаний в разделе 1С. Вчера меня один из разработчиков, попросил ему помочь настроить компоненты DCOM для Excel.Application в связке с приложением 1С. Я ранее этого не делал, так что пришлось в этом разбираться. По итогам найденного решения, появилась и эта заметка. Уверен, что на этот материал найдутся желающие.
Что такое DCOM
Distributed Component Object Model (DCOM) — программная архитектура, разработанная компанией Microsoft для распределения приложений между несколькими компьютерами в сети. Программный компонент на одной из машин может использовать DCOM для передачи сообщения (его называют удаленным вызовом процедуры) к компоненту на другой машине. DCOM автоматически устанавливает соединение, передает сообщение и возвращает ответ удаленного компонента. С данным компонентов мы уже знакомились, когда решали ошибку 10016.
Настройка DCOM для Excel.Application
И так у меня есть виртуальная машина под управлением Windows Server 2012 R2, на ней установлены серверные компоненты 1С, есть задача для Excel.Application модуля, настроить DCOM компоненты.
Для выполнения нижеописанных действий, вам будут необходимы права локального администратора, на том сервере, где все будет выполняться
Нам необходимо открыть в панели управления Windows, компонент «Службы компонентов».
Полный путь «Панель управленияВсе элементы панели управленияАдминистрированиеСлужбы компонентов»
Либо можете, через окно выполнить ввести DCOMCNFG, откроется, тоже самое.
В службах компонентов (Component Services) откройте ветку:
Компоненты — Мой компьютер — Настройка DCOM — Microsoft Excel Application (Component Services — Computers — My computer — DCOM Config)
Если по каким-то причинам у вас нет пункта Microsoft Excel Application, откройте реестр Windows, найдите ветку: HKEY_CLASSES_ROOTAppIDEXCEL.EXE, если ее нет, то создаем ее. В ней должен быть ключ REG_SZ со значением {00020812-0000-0000-C000-000000000046}.
КОМУ ЛЕНЬ самому создавать, то можете скачать данный ключ реестра у меня. Просто запустите потом и подтвердите, что согласны добавить. Затем откройте командную строку от имени администратора и выполните команду:
У вас откроется mmc оснастка «Службы компонентов», которая делает то же что и DCOMCONFIG, но позволяет видеть 32 битные компоненты. В результате этих манипуляций компонент Microsoft Excel Application у вас должен появиться. Открываем свойства Microsoft Excel Application.
Переходим на вкладку «Безопасность (Secutity)». В пункте «Разрешения на запуск и активацию (Launch and Activation Permissions)», выберите «Настроить (Customize )» и изменить. Вам нужно добавить сюда учетную запись, от имени которой запускается служба 1С и предоставить ей права:
- Локальный запуск — Local Launch
- Локальная активация — Local Activation
Далее переходим к пункту «Разрешения на доступ (Access Permissions)» и так же меняем их. Добавьте там ту же учетную запись, от имени которой запускается сервис 1С, и дайте ей права «Локальный доступ (Local Access)». Сохраните настройки.
Закрываем окно служб компонентов, теперь для того, чтобы закончит ьнастройку DCOM для 1С и Microsoft Excel Application, вам необходимо дать права на две папки.
Вам нужно убедиться, что у вас есть две папки:
C:WindowsSysWOW64configsystemprofileDesktop
и
C:WindowsSystem32configsystemprofileDesktop
Если их нет, то создайте их. Далее даем полные права на эту папку, для все той же учетной записи, сервиса 1С. Надеюсь, что было не сложно, и вы разобрались в конфигурировании DCOM для компонента Excel.Application в связке с 1С. С вами был Семин Иван, автор и основатель IT портала Pyatilistnik.org,