C#Excel读取优化

我的应用程序将build立一个项目列表,并从Excel文件中获取必要的数据(例如:价格,客户项目代码)。

  • 这个参考excel文件有650行和7列。
  • 应用程序将在一次运行时读取10-12个项目的行。

逐行读取订单项会更明智吗? 或者,我应该首先读取excel文件中的所有行项目到一个列表/数组,并从那里进行search? 谢谢

从devise最能代表数据的类开始,无论它来自哪里,都是很好的开始。 假设没有Excel,SQL等

如果你的数据总是相对较小(650行),那么我只需要把你所创build的数据结构(你自己的类)全部读出来。然后你可以查询那些你想要的数据,比如

var itemsIWant = allMyData.Where(item => item.Value == "something"); 

原因是它使您能够从存储中分离查询(select单个项目)(无论数据来自哪个文件或来源)。如果将Excelreplace为其他项目,则不必重写其他代码。 如果您逐行阅读,则根据标准select项目的代码将与您的Excel阅读代码混合在一起。

保持事物分离使您能够更轻松地单独testing代码的某些部分。 您可以确认一个组件正确读取Excel中的内容并将其转换为您的数据。 您可以确认另一个组件正确执行查询以返回所需的数据(并且不关心数据来自哪里)。


关于优化 – 你将要从磁盘打开文件,无论你必须读取每一行。 这就是所有的开销。 无论你是一次读完整件事,然后每次查询或检查每一行,都不是一个重要的因素。