#0
by fisher
Юзаю строку подключения ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ПараметрыПодключения.ИмяФайла + "; Extended Properties=""Excel 12.0; HDR=NO;"""; Вычитываю запросом "SELECT * FROM [" + ИмяЛиста + "]" И всё какбэ работает... Но попадаются иногда файлы содержанием вроде накладной - шапка и табличная часть, которые таким макаром вычитываются без шапки. Другие нормально. Один из файлов вообще шамански читается - только строка заголовков табличной части, а если перед этим его открыть в екселе - то полностью... Сталкивался ли кто с подобным и получилось ли победить? Если да, то как?
#1
by shuhard
сталкивались как ни странно помогает открытие файлика через апликэйшен и сохранение в старых форматах ну и да, ADODB не универсален
#2
by fisher
Фигово... Пробовал и провайдера Microsoft.Jet.OLEDB.4.0; Extended Properties="Excel 8.0", такая же фигня...
#7
by fisher
Пересохранение в разных форматах не лечит. Видать какая-то особенность именно этого файла. Если тупо первую строчку удалить (там тоже текст какой-то), то все ОК. Пробовал Может, есть что-то хитрое еще в Extended Properties? Где надыбать полный список ентих пропертей? Навскидку не гуглится...
#9
by Ёпрст
у меня вот че записано в какой-то поделке (не моё) //1-я строка не читается при 'HDR=Yes' (так и задумано)
#10
by shuhard
[ Если тупо первую строчку удалить (там тоже текст какой-то), то все ОК. ] тогда понятно ADODB по первым 8 строкам тип определяет
#11
by fisher
В идеале нужна бы опция, позволяющая отключить скайнет и тупо вычитать данные всего листа "как есть".
#13
by fisher
Разобрался. Может, у тебя такая же фигня. Короче, имена листов для обращения по ним в запросе я получал через Connection.OpenSchema(adSchemaTables). А оказалось, что там могут быть не только листы. Вставленные таблицы, фильтрованные области тоже туда попадают. Т.е. в проблемных файлах получалось так, что я обращался не листу целиком, а к какой-то его области. Единственный способ выкупить именно имена листов, который я нашел - это знак "$" в конце имени. Причем надо учесть, что имя листа может быть в одинарных ковычках. Теперь полет вроде нормальный.
#14
by fisher
В итоге плюнул и сделал вычитывание имен листов через Excel.Application. Бо SchemaTables возвращает их в неправильном порядке.
#15
by fisher
+ Но оказалось, что это долго... Оставил загрузку списка листов через ADO, и только если их больше одного - через Excel.Application.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- как? (импорт из dbf в sql для 1с v7)
- Help: Выборка из Excel через ADO
- Импорт из Excel через COM. Как подавить вывод запроса на обновление ссылок?
- Excel и 1С - вопрос про Excel?
- Программно скопировать область из Excel книги 1 в Excel книгу 2
- Можно ли отредактировать файл Excel из 1С без установленного Excel?
- Создание excel документа через ADO
- Excel - ошибка при закрытия Excel
- Excel через ADO
- чтение файла Excel через ado - разные типы данных
- Подскажите плз по импорту Excel через веб-клиент
- Как пересохранить из нового Excel в старый Excel ?
В этой группе 1С
- ГТД по импорту -- не распределяется НДС по номенклатуре
- почему закрыт порт 110
- v7: Получение Остатков товаров
- Криво сохраняется ОСВ из бухгалтерии в Ексель.
- v8: Apache+Firefox+Доменная авторизация
- 1С в терминале и принтер по умолчанию
- НДС в книге покупок по постановлению №1137 удваивается
- СКД с запросом к регистру бухгалтерии
- Получить остаток товара на складах.
- v7: Разделить выборку запроса в 1с 7 ПУБ.
- Открытие справочника в определенной группе без иерархии
- Запись в Excel через ADO
- Освобождение памяти при работе с ПолеHTMLДокумента
- Как из хранилища значений извлечь картинку и в поле документа?
- перенос остатков по товарам из ТиС7 в УТ10.3
- 1CV8 Servers (x86-64)
- Свертка базы БП 2.0 типовая обработка
- автоматизация ввода номеров бесконтактных карт
- Как добавить новый реквизит документа на уже существующую обычную форму
- БП3 закрытие месяца, проводки по счетам