【问题标题】:Excel VBA: Best way to work with data of CSV fileExcel VBA:处理 CSV 文件数据的最佳方式
【发布时间】:2012-03-05 15:59:35
【问题描述】:

我正在寻找一种直接有效的方法来读取 csv 文件并轻松处理 Excel/VBA 中的数据?

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

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

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

非常感谢!

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

让我补充一下到目前为止我从你的帖子中学到的东西:完成任务的最佳选择很大程度上取决于你想要做什么,因此无法回答。此外,还有以下附加选项可以读取 csv 文件:

C: 将 VBScript 类型的语言与 ADO(SQL 类型的语句)一起使用。我仍在研究如何创建一个可行的最小示例。

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

【问题讨论】:

  • 取决于你想做什么......这个问题没有绝对的答案。如果你需要Excel界面,使用方法A。如果你正在加载许多文件并且需要速度,则使用B。
  • 您也可以使用 FileSystemObject(添加对 Microsoft Scripting Runtime 的引用)。这始终是我的偏好。
  • 我今天早上对类似问题的回答(性能选项 B):stackoverflow.com/questions/9564908/…
  • 谢谢阿西利亚斯!我不知何故错过了那个线程。

标签: vba csv excel


【解决方案1】:

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

【讨论】:

  • 我建议的效率在于编程时间。编写自己的版本需要几个周期才能正确完成。使用 Excel 的内置解决方案已经可以处理这些情况。例如,该解决方案在链接中不处理这些带引号的有效 csv:chicago, LA, "NY,NY"
  • 从我同意的编程时间开始。
猜你喜欢
  • 1970-01-01
  • 2011-07-30
  • 2018-03-23
  • 2023-03-21
  • 2021-05-26
  • 1970-01-01
  • 2016-02-28
  • 2011-01-28
  • 1970-01-01
相关资源
最近更新 更多