【发布时间】:2017-06-11 08:57:03
【问题描述】:
我的应用将构建一个商品列表并从 Excel 文件中获取必要的数据(例如:价格、客户商品代码)。
- 此参考 excel 文件有 650 行和 7 列。
- 应用将在一次运行时读取 10-12 行的项目。
逐行阅读会更明智吗? 或者我应该首先将 excel 文件中的所有行项目读入列表/数组并从那里进行搜索? 谢谢
【问题讨论】:
标签: c# excel optimization
我的应用将构建一个商品列表并从 Excel 文件中获取必要的数据(例如:价格、客户商品代码)。
逐行阅读会更明智吗? 或者我应该首先将 excel 文件中的所有行项目读入列表/数组并从那里进行搜索? 谢谢
【问题讨论】:
标签: c# excel optimization
最好从设计最能代表数据的类开始,无论数据来自何处。假装没有Excel、SQL等。
如果您的数据总是相对较小(650 行),那么我只需将整个内容读入您创建的任何数据结构(您自己的类)。然后您可以查询那些您想要的任何数据,例如
var itemsIWant = allMyData.Where(item => item.Value == "something");
原因是它使您能够将查询(选择单个项目)与存储(数据来自任何文件或源)分开。如果您将 Excel 替换为其他内容,则无需重写其他代码。如果您逐行阅读,则根据标准选择项目的代码将与您的 Excel 阅读代码混合在一起。
将事物分开使您能够更轻松地单独测试代码的各个部分。您可以确认一个组件正确读取 Excel 中的内容并将其转换为您的数据。您可以确认另一个组件正确地执行查询以返回您想要的数据(它并不关心数据来自哪里。)
关于优化 - 您将从磁盘打开文件,无论您必须读取每一行的内容。这就是所有开销的地方。无论您是一次阅读整篇文章,然后一次查询或检查每一行都不是一个重要因素。
【讨论】: