Excel VBA: лучший способ работы с данными файла CSV - PullRequest
1 голос
/ 05 марта 2012

Я ищу прямой и эффективный метод для считывания csv-файлов и удобной работы с данными в Excel / VBA?

Лучше всего было бы: прямой доступ кданные путем указания строки и столбца.Можете ли вы сказать мне о вашем предпочтительном варианте?Знаете ли вы дополнительную опцию для следующих двух?

A: Используйте Workbooks.Open или Workbooks.OpenText, чтобы открыть CSV-файл в качестве рабочей книги.Затем поработайте с книгой (сравните этот поток ).

B: Используйте Open strFilename For Input As #1 для записи данных в строку.Работа со строкой (сравните эту тему ).

Большое спасибо!

========== РЕДАКТИРОВАТЬ =========

Позвольте мне добавить то, что я узнал из ваших постов до сих пор: оптимальный вариант выполнения задачи слишком сильно зависит от того, что вы хотите сделать именно, поэтому ответ невозможен.Кроме того, существуют следующие дополнительные параметры для чтения файлов CSV:

C: Использование языка VBScript-типа с ADO (операторы SQL-типа).Я все еще выясняю, как создать минимальный пример, который работает.

D: Использование FileSystemObject, см., Например, эту тему

1 Ответ

1 голос
/ 05 марта 2012

Самый быстрый и эффективный способ добавления данных CSV в Excel - это использование мастера импорта текста в Excel. Это анализирует файл CSV, предоставляя вам несколько вариантов форматирования и организации данных. Как правило, при программировании собственного синтаксического анализатора CSV можно игнорировать нечетные синтаксические случаи, что приводит к переработке кода синтаксического анализа. Использование мастера Excel покрывает это и дает вам некоторые другие бонусы (например, параметры форматирования). Чтобы загрузить CSV (в Excel 2007/2010) на вкладке «данные», выберите «Из текста», чтобы запустить «Мастер импорта текста». Обратите внимание, что разделителем по умолчанию является tab, поэтому вам нужно изменить его на запятую (или любой другой символ) на шаге 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...