Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 14:52

Не открывается файл XLSX

Автор magnifico61, 26 апр 2017, 11:20

0 Пользователей и 1 гость просматривают эту тему.

magnifico61

ADO_Connection = Новый COMОбъект("ADODB.Connection");

HDRSwitch = ?(ЧитатьЗаголовок, "YES", "NO");
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ПутьКФайлу + ";Extended Properties=""Excel 8.0;"
+ "HDR=" + HDRSwitch + ";IMEX=1;""";

ADO_Connection.ConnectionString = ConnectionString;
ADO_Connection.CursorLocation = 3;

Try
ADO_Connection.Open();
Except
Сообщить("Не удалось поключится к файлу: " + ОписаниеОшибки());
Возврат Неопределено;
EndTry;


При попытке открыть файл XLSX выдает ошибку

Не удалось поключится к файлу: {ВнешняяОбработка.ЗагрузкаОстатковПоставщиков.Форма.Форма.Форма(62)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft JET Database Engine): Внешняя таблица не имеет предполагаемый формат.

Как открыть данный файл?

has

Видать файл не xlsx.
А почему не используешь Excel.Application? Excel не установлен?
Может не открывает, потому что Excel не установлен.

ilyay

Он же через ADO открывает, т.е. через драйвер - это без Excel можно сделать.

magnifico61

Тогда подскажите вариант как открыть этот файл, желательно в примере, спасибо.
Добавлено: 26 апр 2017, 12:52


А файл формата XLS открывается

Dethmontt

патаму что
Extended Properties=""Excel 8.0;
Добавлено: 26 апр 2017, 14:24


Excel 12.0 Xml

https://www.connectionstrings.com/ace-oledb-12-0/
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

magnifico61

Не удалось поключится к файлу: {ВнешняяОбработка.ЗагрузкаОстатковПоставщиков.Форма.Форма.Форма(62)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.

Об_Конект = ADO_ПолучитьПодключениеКФайлуExcel(Объект.Файл);
ВысотаЗаголовка = 0;
СтрЗапроса = "
|SELECT *
|FROM [A" + ВысотаЗаголовка + ":AZ100000]
|";

Об_РекордСет = Новый COMОбъект("ADODB.Recordset");
Попытка
Об_РекордСет=Об_Конект.Execute(СтрЗапроса);
Исключение
Сообщить("Не удалось выполнить запрос к файлу Excel");
Возврат;
КонецПопытки;


Функция ADO_ПолучитьПодключениеКФайлуExcel(ПутьКФайлу, ЧитатьЗаголовок = Ложь)

ADO_Connection = Новый COMОбъект("ADODB.Connection");

HDRSwitch = ?(ЧитатьЗаголовок, "YES", "NO");
ConnectionString = "Provider=Microsoft.Jet.OLEDB.12.0;Data Source=" + ПутьКФайлу + ";Extended Properties=""Excel 12.0 Xml;"
+ "HDR=" + HDRSwitch + ";IMEX=1;""";

ADO_Connection.ConnectionString = ConnectionString;
ADO_Connection.CursorLocation = 3;

Try
ADO_Connection.Open();
Except
Сообщить("Не удалось поключится к файлу: " + ОписаниеОшибки());
Возврат Неопределено;
EndTry;

Возврат ADO_Connection;
КонецФункции

ilyay

Драйвера установлены?
Пуск - Панель управления - Администрирование - Источники данных (ODBC)

magnifico61

Цитата: magnifico61 от 26 апр 2017, 14:34Provider=Microsoft.Jet.OLEDB.12.0;

Разобрался, ошибка была в этой строке.

Добавлено: 27 апр 2017, 13:31


А есть ли возможность при такой схеме чтения файла указать какую страницу читать из файла Excel?

Dethmontt

magnifico61,



//   пЛист     - Имя листа с данными

ТекстЗапроса =
    "SELECT
    |    Лист.*
    |FROM
    |    [" + пЛист + "$] as Лист";
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

magnifico61

Не удалось выполнить запрос к файлу Excel

Что то не так в этом запросе.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск