Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

xlsx vs ado

xlsx vs ado
Я
   Cool_Profi
 
23.03.18 - 12:25
Есть ексель-файлик, который мне выгружают с внешнего сервиса.

Хочу его прочитать.
Читаю так 

еБаза=Новый COMОбъект("ADODB.Connection");
СтрокаПодключения = "
|Provider=Microsoft.ACE.OLEDB.12.0;
|Data Source=C:\Users\cd\AppData\Local\Temp\v8_7537_12b.xlsx;
|Extended Properties="Excel 12.0 XML;IMEX=1;HDR=Yes;";
"
еБаза.Open(СтрокаПодключения);

получаю "Произошла исключительная ситуация (Microsoft Access Database Engine): Внешняя таблица не имеет предполагаемый формат."

поиск показал, что в файле что-то не так. Если этот файл открыть в екселе и пересохранить - он открывается нормально.

Отсюда вопрос - что может быть не так в файле? Что сказать той стороне, чтобы поправили?
 
 
   Kuzmich123
 
1 - 23.03.18 - 12:26
А чего средствами платформы не читаешь?
   Cool_Profi
 
2 - 23.03.18 - 12:32
(1)
табдок = Новый ТабличныйДокумент;
табдок.Прочитать("C:\Users\cd\AppData\Local\Temp\v8_7537_12b.xlsx");
табДок.Показать();


Ошибка при вызове метода контекста (Прочитать): Ошибка при выполнении файловой операции 


У меня 8.2.19
   Адинэснег
 
3 - 23.03.18 - 12:32
а чо так можно? оО
(1)(2)
   Адинэснег
 
4 - 23.03.18 - 12:34
Описание:

Считывает табличный документ из файла.
Позволяет считывать табличный документ из файла табличного документа Microsoft Excel 97 - 2010 ( *.xls и *.xlsx) или электронной таблицы OpenOffice Calc ( *.ods).

ого, как это я мимо прошел?
   VitShvets
 
5 - 23.03.18 - 12:44
(0) Могу предположить, там "xls", но файл с расширением "xlsx". Самому Екселю пофиг, он смотрит на содержимое, а вот адошным драйверам не нравится.
   Cool_Profi
 
6 - 23.03.18 - 12:45
(5) В таком случае ексель жалуется. Тут же жалоб нет.
И да, смотрел внутрь - там зип с xml
   karabas11
 
7 - 23.03.18 - 12:49
(1) Есть проблемы у этого способа. Он точно также не все эксели понимает.
Платформа 8.3.10 , пробую читать некий эксель файл от внешнего контрагента. Читаю ТабДок.Прочитать() - ноль информации в результате. Неверно определяет количество листов, неверно определяет содержимое.
Стоит открыть файл в экселе и пересохранить его, так сразу же 1с нормально начинает работать и корректно читать файлы эксель.

Очевидно есть зависимость от программы, которая генерирует эксель файл.
   VitShvets
 
8 - 23.03.18 - 12:58
(6) Смотря как настроить безопасность. У меня вот не жалуется. Но вообще странно, видимо файлы создают чем-то ооочень специализированным. А COM-объектами Excel или LibreOffice если читать? У Микрософта раньше была бесплатная утилита Excel-reader или как-то так.
   бомболюк
 
9 - 23.03.18 - 13:00
Файл *.xlsx, созданный 1С, драйвер Microsoft Access Database Engine(Microsoft.ACE.OLEDB.12.0) не читает. Говорит, что  External table is not in the expected format.
   Cool_Profi
 
10 - 23.03.18 - 13:01
(8) У меня жалуется. Уже проверил. Вот разработчики говорят, что какую-то библиотеку используют, на той стороне вебятина
Ком использовать не хочу, на сервер тянуть офис не стоит, хотя если вообще вариантов не будет - придётся пойти таким путём.
 
 Рекламное место пустует
   Cool_Profi
 
11 - 23.03.18 - 13:02
(9) вот именно
   Cool_Profi
 
12 - 23.03.18 - 13:04
Вот такой они делают OpenXMLExcel.SLExcelUtility

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует