Имя: Пароль:
IT
Админ
MS Database Engine не открывает файлы Excel
0 den090312
 
10.01.18
08:48
Всем привет! Столкнулся с такой проблемой
Есть сервер, на нем стоит Microsoft Access Database Engine 2016
Через сервер проходит регламентное задание 1С, которое читает электронную почту и выгружает оттуда файлы Excel (во вложении письма).
Замечена следующая особенность: когда отправитель письма, перед тем как его отправить, заходил в файл через MS Excel и сохранял его, то DB Engine этот файл прекрасно читает. Но если файл был создан просто импортом из 1С, DB Engine выдает ошибку: "Произошла исключительная ситуация (Microsoft Access Database Engine): External table is not in the expected format"

Разницу между такими файлами выявили в их свойствах на вкладке "Подробно". Если файл перед отправлением проходил через MS Excel, то у него в разделе "Источник" указаны: "Авторы", "Кем создан" и "Имя программы". А если импортом из 1С, то эти пункты пустые

Я гуглил ошибку "External table is not in the expected format". Чего мне только не предлагали, ничего не помогает.

У меня есть подозрение, что DB Engine не предназначен для работы с импортированными екселевскими файлами. Как будто он доходит до свойства "Авторы", видит пустоту, и все - это для него уже не формат )

Как думаете вы? Сталкивались с подобной проблемой?
1 NorthWind
 
10.01.18
08:53
(0) скорее всего, в письме файлики приходят не совсем Excel Workbook. Возможно, это Excel XML или еще какой-то смежный формат, который экселем читается, а вот провайдером ACE нет. Провайдеру жизненно необходим именно Excel Workbook, ничего другого он не понимает.
2 бомболюк
 
10.01.18
09:15
дааа, такая же фигня.
переименовал *.xlsx в *.zip и поглядел внутрь. В пересохраненном варианте есть папочка "docProps". Ее наверное и не хватает. Чего делать пока не понял.
3 NorthWind
 
10.01.18
09:26
(2) а если ее туда подоткнуть от другого файла - не начинает жить?
4 Ботаник Гарден Меран
 
10.01.18
09:40
5 den090312
 
10.01.18
09:47
(4) Там я читал, MSXML 6.0 уже стоит, не помогает
(2) Да, в этой папке как раз и лежат свойства файла
6 den090312
 
10.01.18
10:38
(2) бомболюк подсказал решение задачи:
Нужно разобрать zip-архив и вытащить оттуда содержимое

Файл xl\SharedStrings.xml содержит в себе значение всех текстовых ячеек файла. На него установлены ссылки из файлов xl\worksheets\sheet1.xml (описание листа(ов)).

Вот тут полезная информация:
http://catalog.mista.ru/public/665512/
7 бомболюк
 
10.01.18
10:50
(6) так можно узнать: чего надо поправить чтобы Microsoft.ACE.OLEDB работал с файлами из 1С?
Основная теорема систематики: Новые системы плодят новые проблемы.