【问题标题】:Is it more efficient to read from an Excel file or an CSV file?从 Excel 文件或 CSV 文件读取效率更高吗?
【发布时间】:2013-09-20 16:53:10
【问题描述】:

我需要编写一个快速程序(使用 Java,因为它是我唯一真正熟悉的语言),它采用 Excel 文件(或 CSV)并通过数据添加可能丢失的信息。

我遇到的问题是我无法决定如何开始,感觉操作 Excel 文件会更容易,但读取 CSV 文件会非常简单。

对可能出现的问题的任何见解,或者我忽略的第三种解决方案。

excel 文档基本上只是一个包含打印机 IP、名称、制造商和位置的小型审核数据库。

编辑:普遍的共识似乎是 CSV 更容易操作,因为我想编写一个可以运行的快速脚本,我认为下载额外的库以进行 excel 操作会很麻烦。

今天或周一开始编写代码,本周晚些时候可能会有更多问题。谢谢你们每一个人的帮助!带着我的第一份工作冒险进入新的领域。

【问题讨论】:

  • 如果用户使用 Excel,为什么不使用 VBA(如果逻辑不太复杂)或 .net 语言?如果您遵循基本的性能准则(尤其是对于这么小的文件),即使 vba 也可以带来相当好的性能。您的用户无需单独打开您的程序或将他们的数据保存为 CSV 并重新导入。
  • 嗯,这将由我们的 IT 团队实施,基本上我们将翻录一个庞大的打印机数据库,然后我将添加必要的 IT 数据并自己上传到我们的帮助台程序(通过CSV),因此没有实际用户会弄乱它。这是我自己的项目,我每个月都会上传它。
  • 我使用 java 的部分原因是我缺乏其他编程语言的经验。 Java 是我的舒适编程语言,我可以确保在合理的时间内编程不会出错。

标签: java excel csv


【解决方案1】:

如果在您的情况下可以选择读取 CSV,我肯定会选择它,因为您可以在不使用外部库的情况下以一种既独立于系统又可移植的方式来做到这一点。

就效率而言,时间很可能会以 I/O 为主,因此文件越小 - 读取它的速度就越快。

由于需要正确处理引号,添加缺少的信息并将文件写回可能有点棘手,但它仍然比通过专用库访问 Excel 文件简单得多。

【讨论】:

  • 我认为由于需要设置对象模型,读取 Excel 文件会产生一些固定开销。例如,如果使用 apache POI,WorkBook 对象的构建时间相当长。
  • 好的,很高兴知道。它不是一个太大的文件,它将是 excel 中大约 500 x 10 的单元格。我没有意识到你必须为 excel 下载一个 jxl 库。
  • 还有一个问题,如果您可以访问 excel 文件,您是否总是能够访问 CSV 文件,因为 excel 可以选择将其保存/导出为 CSV 文件?
  • @BoristheSpider 这取决于 Excel 阅读器的实现。 Excel 的开销会更高,这绝对是正确的,但由于它是一个适合内存的小文件,因此从磁盘读取它可能会占主导地位。
  • @TacticallySuperiorAvocado CSV 文件将独立于 Excel 文件,因为最终用户必须手动打开 Excel,另存为 CSV,运行程序并处理其结果作为独立于原始 Excel 文件的 CSV 文件。
【解决方案2】:

CSV 会更容易,因为您不需要任何额外的库,例如 jxl。参考这个read and write CSV tutorial

【讨论】:

    【解决方案3】:

    500x10 真的很小,很难想象需要很多代码。如果坚持使用 Excel 的内置功能(查找/替换、排序、筛选、数据透视表、向下复制等),我希望就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 2013-05-21
      • 2011-09-06
      • 1970-01-01
      相关资源
      最近更新 更多