如何使用Excel文件中的数据作为数据源ASP.Net MVC App

问题描述 投票:0回答:1

所以我知道这个问题似乎有点宽泛,所以让我给出一些背景信息。在我工作的地方我们的工程师使用这些巨大的Excel文件,这些文件充满了数据(物料清单编号,成本等)。我正在寻找一种将这些文件用作数据源的好方法。我知道导入.xlsx与.csv文件相比需要更长的时间。有某种运行程序定期将数据转换为csv文件然后使用该文件作为数据源是否有益?或者有没有办法让Excel数据与数据库保持同步?

我不确定我的“选择”是什么。或者,如果有更好的通用做法。我在创建程序时只使用数据库,但必须让工程师维护excel文件和数据库而不是一个选项。

我已经看过了什么

Using LinqToSQL

Importing Excel Into Server

任何指针将不胜感激。

c# excel asp.net-mvc entity-framework
1个回答
1
投票

一些建议:

确保您的数据源隐藏在抽象之后。例如,像IProductRepository这样的界面只包含您需要与之交互的方法。该接口不应以任何方式暗示底层实现是什么。

这样您的选择就不会“泄露”到代码的其他部分。你无需修改所有内容就能改变主意。其次,当您尝试创建不同的实现时,您将预先看到它需要支持哪些方法。

以下是几个不直接使用Excel作为数据源的原因,而是定义自己的数据库:

  • 如果Excel文件不是出于此目的,那么它们可能会无法预测地更改,然后您的应用程序将无法正常工作。 (或者更糟糕的是,它“有效”,但它使用了错误的列或表格,数据看起来很相似,暂时没有人注意到。)如果您要将Excel文件导入数据库并且文件布局发生变化,它仍会创建工作,但该工作将在您导入数据的位置,而不是在您的应用程序的其余部分。你保持“易变”的东西可能会改变你的代码的其他部分。
  • 一个看似合理的常见情况是,您以后还需要包含来自其他来源的数据。如果您的应用程序正在阅读Excel,那么现在您必须弄清楚如何将数据从其他地方获取到Excel工作簿中。这是可行的,但根本没有乐趣。如果您从数据库中读取数据会更容易,而Excel只是数据进入数据库的一种方式。然后,包含其他来源的数据要容易得多。

这些都反映了我们的应用程序应该对它所依赖的事物有更多控制权的想法。当您定义存储库接口时,您的应用程序会说无论实现是什么,它都必须符合这一点。创建自己的数据库是该原则的扩展。您可以控制数据存储,任何放入数据的数据都必须符合它。你无法控制你无法控制的东西,但你可以将它推离你控制的部分,以限制它所需的工作。

© www.soinside.com 2019 - 2024. All rights reserved.