|
|
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
проблема в том, что в файле указано в ячейке значение, а драйвер выдает пустую строку. пример файла есть.. кто нибудь пользовался этим драйвером? либо куда можно написать по этой проблеме? только не надо отправлять на сайт мелкософта, там нужно коды всякие вводить, которых у меня на руках нет, они у админов, и получить их проблематично.. для спящего время бодрствования равносильно сну ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2012, 13:35 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
Алексей2003, Написать можно в спортлото. Из вашего поста совершенно неясно, обо что вы, хоть бы файл со строками подключения выложили чтоли. Кроме того, в вашей прошлой теме я дал ссылку на сайт посвященный подключению к даннымм. как определить количество колонок . Там есть информация по драйверам на любой вкус и цвет + некислый форум прилагается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2012, 14:26 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
используя Microsoft Access Database Engine 2007 ячейка G9 - пустая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2012, 15:28 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
загрузил Microsoft Access Database Engine 2010, строка подключения Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Строка(мФайл.ПолноеИмя) + ";" ругается: Не удается найти указанный поставщик. Вероятно, он установлен неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2012, 15:30 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
Алексей2003загрузил Microsoft Access Database Engine 2010, строка подключения Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Строка(мФайл.ПолноеИмя) + ";" ругается: Не удается найти указанный поставщик. Вероятно, он установлен неправильно. с этим разобрался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2012, 16:09 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
Алексей2003, Вы можете чётко формулировать, чего пытаетесь сделать? Например: "Достать в Access значение ячейки из файла Excel" Далее привести код, который используете, пояснить что именно не получается(отрабатывает не так) и снабдить пост примерами. Только так можно быть уверенным в понимании проблемы, без которого трудно помочь, дать совет, указать направление и т.д. Из того, что есть сейчас, могу лишь поделиться своим опытом использования Microsoft.ACE.OLEDB.12.0: Для Excel я использую строку подключения следующего вида: ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path & ";Extended Properties=" & Chr(34) & "Excel 12.0 Macro;HDR=NO;ACCDB=YES;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text" & Chr(34) & ";" path - путь к файлу.Также, я явно задаю Extended Properties - это позволяет добиться более предсказуемого результата. Далее, запрос формирую вида "Select F1, F2, ... F(N) From [" & Current_Data & "]" Current_Data - я задаю как диапазон, (например Лист1$A1:С3).Это позволяет обращаться к данным из любой части листа. Адрес диапазона можно формировать динамически, либо использовать статический адрес(если он не меняется).При этом, если речь идёт об окрытой книге, и данные в диапазоне меняются, то после формирования адреса книгу нужно сохранить. Фактически, с помощью такого подхода мы можем обрабатывать данные открытой книги Excel cредствами SQL, а это часто предпочтительней. Поскольку в строке подключения HDR=NO, нужные столбцы указываю как F1, F2, F(N). Ссылка на примеры от MS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2012, 18:57 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
СтрокаСоединения = ФорматСтроки("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%1; ;Extended Properties=""Excel 12.0 Xml;HDR=NO""", мФайл.ПолноеИмя, HDR); СтрокаПодключения = "provider=MSDASQL;DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DriverId=790;ReadOnly=0;DBQ=" + Строка(мФайл.ПолноеИмя) + ";"; AdoConnection = Новый COMОбъект("ADODB.Connection"); МассивИменЛистов = Новый Массив; // получаем схему базы данных и заносим список таблиц(листов) в массив Попытка AdoConnection.ConnectionString = СтрокаПодключения; AdoConnection.Open(); // получаем recordset, содержащий схему таблиц базы даннных // поля таблицы-схемы: TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, TABLE_GUID, DESCRIPTION, TABLE_PROPID, DATE_CREATED, DATE_MODIFIED // из них заполнены: TABLE_NAME, TABLE_TYPE SchemaRecordset = AdoConnection.OpenSchema(adSchemaTables); // в цикле "перебираем" все записи в объекте SchemaRecordset Пока SchemaRecordset.EOF() = adFalse Цикл // добавляем имя таблицы (листа) в массив МассивИменЛистов.Добавить(SchemaRecordset.Fields("TABLE_NAME").Value); // переход на следующую запись SchemaRecordset SchemaRecordset.MoveNext(); КонецЦикла; Исключение ТекстОшибки = ОписаниеОшибки(); Сообщить(ТекстОшибки); // если была ошибка в блоке, то сообщаем о ней и выходим ЗаписьЖурналаРегистрации("Не удалось загрузить файл " + Строка(мФайл.ПолноеИмя)+ТекстОшибки); Возврат Неопределено; КонецПопытки; Для Каждого ТекИмя Из МассивИменЛистов Цикл ИмяЛиста_ = ТекИмя ; ТекстКоманды = ФорматСтроки("SELECT * FROM [%1]", ИмяЛиста_); ОшибкаЗагрузки = Ложь; Recordset = Новый COMОбъект("ADODB.Recordset"); Попытка Recordset.Open(ТекстКоманды, СтрокаСоединения); Исключение Сообщить(ОписаниеОшибки()); ОшибкаЗагрузки = Истина; КонецПопытки; ТЗ = Новый ТаблицаЗначений; КоличествоКолонок = Recordset.Fields.Count; // получаем количество колонок с данными, после выполнения запроса Для НомерКолонки = 0 По КоличествоКолонок - 1 Цикл //ТипЗнч(ПерваяСтрока[КолонкаТаблицы.Имя]) Массив = Новый Массив; Массив.Добавить(Тип("Строка")); Тип = Новый ОписаниеТипов(Массив, ,Новый КвалификаторыСтроки(500)); ТЗ.Колонки.Добавить(Recordset.Fields(НомерКолонки).Name,Тип); КонецЦикла; // перебираем записи(строки) объекта Recordset Пока Recordset.EOF() = adFalse Цикл НоваяСтрока = ТЗ.Добавить(); // копируем данные каждого столбца (поля) в новую строку таблицы значений Для НомерКолонки = 0 По КоличествоКолонок - 1 Цикл НоваяСтрока[НомерКолонки] = Recordset.Fields(НомерКолонки).Value; КонецЦикла; Recordset.MoveNext(); // переходим на следующую запись(строку) объекта Recordset КонецЦикла; КонецЦикла; принцип загрузка через Recordset Recordset.Fields(НомерКолонки).Value для ячейки строка 9, колонка 7 выдает NULL, хотя там указано значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2012, 09:50 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
Ясно. Проблема в структуре данных листа который вы пытаетесь прочитать. Конкретно - из-за ячейки G7, которая содержит дату. Т.к. она идёт первой в колонке, она оверрайдит смешанный режим чтения, поэтому все строки под ней будут интерпретированы как NULL. Тащемто эт известный глюк, можете погуглить. Возможные решения: Сдвинуть дату в файле-исходнике в другое место, где она никому не помешает. Таки поместить текстовые заголовки в первой строке. Можно вычислить количество строк, и считывать построчно в цикле. Отказаться от ADO и доставать данные с помощью XML(если принципиально важен такой формат данных в файле - исходнике). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2012, 13:00 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
да, изза чего это возникает я разобрался. проблема в том, что загрузка файлов идет в автомате, и не мы контролируем этот вопрос. загружаем то, как есть. править ячейки не представляется возможным. а как доставать данные с помощью xml? учитывая что версии файлов от 2003 офиса до 2010 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2012, 13:17 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
В общем случае будет достаточно сохранять ваши файлы вместо *.xls и *.xlsx в *.xml. Тут либо придется таки повлиять на загрузку, чтобы файлы в xml загружались, либо простейшим макросом конвертить, т.е. открывать файлы и сохранять как *.xml(потребуется наличие Excel) пример простейшего файла в формате xmlss <?xml version="1.0"?> <?mso-application progid="Excel.Sheet"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <Worksheet ss:Name="Report"> <Table> <Row> <Cell><Data ss:Type="String">Test</Data></Cell> </Row> </Table> </Worksheet> </Workbook> Останется только распарсить Только мне не понятно следующее Алексей2003 загрузка файлов идет в автомате, и не мы контролируем этот вопрос. загружаем то, как есть Получается, вы пытаетесь решить проблему, для решения которой у вас изначально нет необходимых полномочий, доступа и т.д.(если у вас даже нет банального доступа к файлам, чтобы слегка поправить формат данных, хотяб на время обработки) В таком случае любое решение, которое будет исходить от вас, не будет хоть сколько-нибудь приемлемым для вас же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 12:12 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
да чуток изменить загружаемый файл можно, а в систему грузить оригинал. двойное сохранение файла получается. выйгрыш по времени довольно сомнительный, как если считывать ячейки экселя.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 12:39 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
Если конечная цель - выигрыш по времени, то передача данных через Excel - заведомо сомнительный выбор, т.к. Excel изначально создавали для решения совсем других задач. Возможность доступа к Excel как к БД (при условии что данные в нём соответстующим образом структурированны заранее) - не более чем приятное дополнение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 15:14 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
поздно уже чтото менять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 15:15 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
Чтож, поздно - значит поздно. Значит продолжайте развлекаться с тем что есть Проблемы с драйверами доступа для вашего случая обозначены. Не думаю что MS будет решать их в ближайшее время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 15:29 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
учитывая что драйвер выпустили последний раз в 2009 году, точно врядли спасибо за помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2012, 15:33 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
ElenHimЕсли конечная цель - выигрыш по времени, то передача данных через Excel - заведомо сомнительный выбор, т.к. Excel изначально создавали для решения совсем других задач. Возможность доступа к Excel как к БД (при условии что данные в нём соответстующим образом структурированны заранее) - не более чем приятное дополнение. а какие форматы использования возможны, учитывая что порой данные заполняют на коленках бухгалтера...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2012, 17:58 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
Если вы про тот же Excel, то Файл->Сохранить как. В выпадающем списке "Тип файла" можно посмотреть доступные форматы. Среди прочего там есть "Таблица XML 2003(*.xml)" - именно о нём я упоминал выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2012, 18:48 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
ElenHimЕсли вы про тот же Excel, то Файл->Сохранить как. В выпадающем списке "Тип файла" можно посмотреть доступные форматы. Среди прочего там есть "Таблица XML 2003(*.xml)" - именно о нём я упоминал выше. нет, я в принципе про формат. какие варианты кроме экселя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2012, 09:30 |
|
||
|
ошибка загрузки excel файла с помощью драйвера Microsoft Excel Driver
|
|||
|---|---|---|---|
|
#18+
В таком случае ответ на ваш вопрос - любые форматы, хоть *.jpeg, хоть клочок бумаги с карандашом. Вариантов столько, сколько коленок у пользователей, и универсального ответа быть не может. Задача специалиста как раз и заключается в том, чтобы основываясь на своих знаниях, опыте, поставленной задаче, (пожеланиях простых пользователей... возможны тысячи факторов!... и т.д.) выбрать решение которое наилучшим образом удовлетворит всех. Если приоритет на быстродействие - значит нужно жестко регламентировать формат ввода данных, и оптимизировать загрузку этого формата (заранее учитывая такие мелочи, как возможные проблемы с драйверами доступа к данным). Т.е. бухгалтер, наваяв что-то наколенках, прежде чем загрузить результаты своего творчества, должен представить их в соответствующем формате. Если приоритет на колени бухгалтеров - то вам понадобятся множество способов обработки таких данных (возможно, даже ручных). О быстродействии в таком случаее не может быть и речи. Что касается меня, то я предпочитаю первый вариант. Когда я делал свою первую систему, у нас было 5 юр.лиц., которым нужно было автоматизировать управленческий учёт. До этого они вели свои данные на коленках, в Excel, но каждый по-своему. Соответственно, консолидация этих юрлиц (опять же в Excel) занимала 1-2 дня. Самое очевидное решение - БД. Только писать загрузки для всего разнообразия форматов мне было как-то тоскливо. Поэтому я построил в Excel единую модель, которая учитывала особенности сразу всех юр.лиц. и, опираясь на административный ресурс руководства, внедрил её. Сотрудники сначала чертыхались, потом привыкли, а сейчас вообще не представляют, как жили раньше. И да, консолидация теперь занимает 30 секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2012, 16:06 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37742827&tid=2175831]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
150ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 423ms |

| 0 / 0 |
