是否有可能加载一个Excel文件到内存?

我有一个网站,企业可以加载项目出售。 然后最终用户可以search该项目,并find所有的商店。

大多数商店销售超过100件东西,虽然我确实有插入单件物品的表单,但只有这样才能让企业提供物品,这是非常愚蠢的。

我的想法是有一个企业上传一个Excel文件的选项,让我的ASP.Net应用程序从列中提取信息和填充类,然后与entity framework4魔术我会坚持这一切的信息一举。

在做这件事情时,我应该注意哪些缺陷? 这可能吗? 这是一个非常重要的过程在我的服务器(它会把我的网站弄糟)?

编辑:到目前为止,似乎为了我parsingXML文件,我需要安装Office。 我不确定Winhost.com是否提供这个function。

另一个解决scheme是使用CSV文件来接收信息。 一个秘书如何创build一个CSV文件,记住她可能是首先要创build文件的人。 这是一个电脑有障碍的人创build这个容易吗?

parsing一个CSV将是微不足道的,但我想专注于用户体验,并没有人在我的网站诅咒,使他们学习的东西。

编辑2:完全忘了提, 当然我会提供一个模板供他们使用,这将是绝对愚蠢的,只是假设他们将遵循表布局。 所以不要把这个问题考虑在内。 我也知道,我将不得不validation每一列,所以他们不写'价格'字段或类似的东西'lolgei'。

一些快速的想法….

input数据的validation将非常重要。 由于这是一个独立的过程,所以你需要把这个locking得非常紧密,所以用户不会尝试上传他们不应该的东西。

运行办公自动化过程通常是一个繁琐的解决scheme,为您的服务器部署添加一个Microsoft办公室依赖项,如果可能的话最好避免,特别是如果您的意图是在回发后运行此代码。

更好的解决scheme可能是为最终用户提供一个可输出可上载的xml文件的excel模板。 这种方式更容易处理,也更容易validation,并消除您的服务器上的Microsoft Office的任何依赖。 Excel有一些很好的xml特性。 就我个人而言,我会select这种方法将工作簿本身发送到服务器。

希望这可以帮助..

请享用!

我做了类似的事情。 道格是正确的,办公自动化可能有点棘手,这里没有必要。 如何简单的CSV文件? 加载它们很容易,它们是可parsing的,可以很容易地validation。

秘书可能会接受培训,以正确的格式创build一个Excel表。 将该工作表保存为CSV文件是一项简单的任务(文件 – >另存为 – > csv)。

FWIW,过去我对SpreadsheetGear印象深刻。 这对你将不得不做的validation不是很有帮助,但是你可能会发现这是一个更简单的方法来处理数据。

当我这样做时,我使用CSV文件而不是XLS文件,因为CSV文件在服务器端更容易parsing。 用户上传文件后,下一步是validation数据并显示任何错误或警告。 如果用户可以通过导入过程更新现有的logging,这会变得更加复杂。 然后,您的代码必须能够在两个数据存储之间进行同步,而不仅仅是批量插入logging。

我可以提出一个横向思想? 如何build立Excel表格的附件,你可以分发给你的客户? 它可以处理所有必要的身份validation等,并按下button,将信息发送到您的ASP.NET服务器(或更好的,然后您可以pub和sub的WCF服务)。 当然,在这一点上,您不必担心将Excel格式转换为.NET可读格式 – 这可以从插件前端格式化为您的心愿,无论是XML序列化对象,csv,随你。

只是我的$ 0.02值得…

首先要担心的是您的用户将要提出的各种演示文稿。 你应该给他们一个模板,但是即使如此,用户也是以非常有创意的方式搞砸了。

不要使用自动化来读取Excel文件。 它不受支持,有一天它将停止工作。 让用户上传xlsx文件,并使用OpenXML SDK来提取数据。

devise一个pipe理页面可能会很有帮助,可以一次input多个项目。 我这样说是因为无论如何,即使你发出一个“标准”/空excel文件作为他们input数据的模板,用户将不得不键入每个项目,然后导入。

我不明白你为什么要从Excel文件中填充对象。 为什么不创build一个例程来允许客户上传excel文件,parsing它,并将多个项目插入到您现有的数据库? 看来你已经有一个架构了。 你想要的方法似乎过于复杂。

我之前做过这样的import,但要小心喷气机供应商会吃掉连接。

帮我find这个Excel导入代码的泄漏

我结束了与csvparsing。

Interesting Posts