2014-01-27 3 views
2

У меня есть файл CSV, который я хочу импортировать в таблицу (т. Е. ListObject).Импорт CSV непосредственно в ListObject

Обычно я делаю это с помощью Data-> Import text file ... - и затем конвертирует результат в таблицу. Однако это нарушает соединение, то есть пользователь не может просто нажать обновление и получить обновленные данные в таблице.

Я знаю, что могу сделать это с помощью VBA (таким же образом, то есть импортировать данные, а затем создать listobject), но это все равно сломает соединение.

Есть ли способ импортировать CSV-данные в списокObject, не нарушая соединение?

Я попытался

Sheet1.ListObjects.Add(SourceType:=xlSrcExternal, _ 
    Source:="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filename.csv;Extended Properties=Text;", _ 
    Destination:=Range("$A$1")) 

, но это только произвел ошибку 1004.

+0

Я думаю, что в качестве источника вы должны использовать 'Recordset Object', а не' ConnectionString (text) '. Однако, я думаю, это не позволит обновить LO, к сожалению. Но вы могли бы попробовать. –

ответ

3

Большой вопрос Питер. Сегодня я столкнулся с той же проблемой и, благодаря Чарли Киду на ExcelUser.com, нашел то, что кажется лучшим решением.

Это будет ссылка на ответ только для ссылок, но резюме состоит в том, что вы можете получить это, используя MS Query. Чтобы начать, нажмите DATA> Из других источников> Из запроса Microsoft.

Этот метод создает файл schema.ini для большого количества текстовых файлов, как у вас в папке. Таким образом, в основном папка - это ваша база данных, а текстовые файлы - ваши таблицы. Когда этот файл был создан мастером MS Query, мне было намного проще его изменить в текстовом редакторе. И снова вы можете определить схему импорта для всех текстовых файлов в папке.

Вот Charley Kid post. Мне пришлось прочесть это несколько раз, прежде чем я получу фиктивные подробности.

И вот ссылка на MS page с подробной информацией о настройке schema.ini.

Если у вас есть время, чтобы изучить его, я буду благодарен за ваши мысли, поскольку я планирую использовать его в довольно большом проекте.

+0

Спасибо Doug! Это похоже на правильный подход, мне очень нравится (хотя и слишком сложно - почему Excel не поддерживает это изначально?). Не сможет проверить на следующей неделе, хотя ...: - / –