2012-03-05 956 views
1

我正在寻找一个直接高效的方法来读取csv文件并轻松处理Excel/VBA中的数据?Excel VBA:处理CSV文件数据的最佳方法

最好的事情是:通过指定行和列直接访问数据。你能告诉我你的首选吗?你知道以下两个选项吗?

答:使用Workbooks.OpenWorkbooks.OpenText作为工作簿打开csv文件。然后使用工作簿(比较this thread)。

B:使用Open strFilename For Input As #1将数据写入字符串。使用字符串(比较this thread)。

非常感谢!

==========编辑=========

让我补充我从您的文章至今获悉:最佳选项做任务很大程度上取决于你想要做什么,因此没有可能的答案。此外,还有以下其他选项可用于读取csv文件:

C:使用带有ADO(SQL类型语句)的VBScript类型语言。我仍然在思考如何创建一个最小化的例子。

D:使用FileSystemObject,参见例如, this thread

+3

取决于您想要做什么......这个问题没有绝对的答案。如果您需要Excel界面,请使用方法A.如果要加载多个文件并且需要加速,请执行B. – 2012-03-05 16:02:58

+2

您也可以使用FileSystemObject(添加对Microsoft脚本运行时的引用)。这总是我的首选。 – markblandford 2012-03-05 16:12:51

+0

我同意JFC。 – 2012-03-05 16:23:41

回答

1

将CSV数据添加到excel中速度最快,效率最高的方法是使用Excel的文本导入向导。 这分析CSV文件,给你几个选项来格式化和组织数据。 通常,在编写自己的CSV解析器时,会忽略奇怪的语法情况,导致解析代码的返工。使用Excel向导涵盖了这一点,并为您提供一些其他奖励(如格式化选项)。 要从“数据”选项卡中加载csv(在Excel 2007/2010中),请选择“从文本”启动“导入文本向导”。请注意,默认分隔符是制表符,因此您需要在步骤2中将其更改为逗号(或任何字符)。

+1

您是否测试了各种选项的性能? – assylias 2012-03-05 16:54:10

+1

我建议的效率是编程时间。编写自己的版本需要几个周期才能正确完成。使用Excel的内置解决方案已经可以处理这些情况。例如,解决方案和链接,不处理这些有效的csv与引用commma:芝加哥,洛杉矶,“纽约,纽约” – jdh 2012-03-05 18:39:25

+0

从编程时间我同意。 – assylias 2012-03-05 18:44:50

相关问题