2010-06-25 132 views
0

我有一个网站,企业可以加载项目出售。然后最终用户可以搜索该项目,并找到所有的商店。是否可以将Excel文件加载到内存中?

大多数商店卖100分多的东西,虽然我有用于插入单个项目形式,这是极大的愚蠢只有这为企业提供的东西。

我的想法是有一个选项,企业可以上传一个excel文件,并让我的ASP.Net应用程序从列中提取信息并填充类,然后使用Entity Framework 4魔法,我将坚持这一切的信息一举。

是否有任何陷阱,我应该我应该知道这样做的时候? 这可能吗? 这是一个非常重要的过程在我的服务器上(它会把我的网站弄糟)吗?

编辑: 到目前为止,似乎为了我解析XML文件,我需要安装Office。我不确定Winhost.com是否提供这种功能。

另一种解决方案是使用CSV文件接收信息。秘书如何轻松创建CSV文件,请记住,她可能是首先要创建文件的人。这对电脑有缺陷的人来说很容易创建吗?

解析CSV将是微不足道的我想,但我希望把重点放在用户体验和没有人我的网站,让他们学到东西骂人。

编辑2: 完全忘了提,那当然的我会提供一个模板供他们使用,这将是绝对愚蠢的就是假定他们将按照表格的布局。所以不要把这个问题考虑在内。我也知道我必须验证每一列,以便他们不会在价格字段中写入'lolgei'或类似的东西。

回答

2

一些快速的想法......

验证输入数据将是非常重要的。由于这是一个独立的过程,因此您需要将其锁定得非常紧密,以便用户不会尝试上传他们不应该的内容。

运行办公自动化的过程通常是一个麻烦的解决方案,增加了一个Microsoft Office依赖于你的服务器部署以及如果可能的话,特别是如果你的目的是在其上运行后这个这个代码回,最好避免。

一个更好的解决方案可能是最终用户提供与输出,然后可以上传一个XML文件,一个Excel模板。这样,它更容易处理,并且更容易验证并消除对服务器上Microsoft Office的依赖。 Excel有一些很好的xml特性。就我个人而言,我会选择这种方式将工作簿本身发送到服务器。

希望这会有所帮助..

享受!

-1

也许这将有助于设计一个管理页面,使得很多项目可以在一次输入。我这样说是因为无论如何,即使你发布了一个“标准”/空的Excel文件作为他们输入数据的模板,用户将不得不键入每个项目,然后导入。

0

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

+0

我没有想过通过上传完整的产品列表来更新产品信息。我会考虑这一点,但现在我只允许他们提供的每个产品使用单个编辑页面。 – 2010-06-25 17:03:47

1

我做了类似的事情。道格是对的,办公自动化可能有点棘手,在这里并不是真的必要。简单的csv文件怎么样?加载它们很容易,它们是可解析的,并且可以很容易地进行验证。

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

+0

虽然您所说的一切都是真实的,但我必须确保创建所述产品清单的过程尽可能地方便企业创建。请记住,这是一个秘书,他可能会创建这个文件。她甚至会知道CSV是什么吗? – 2010-06-25 17:02:27

0

我可以提出一个横向的想法吗?如何构建Excel工作表的插件,您可以将其分发给客户?它可以处理所有必需的身份验证等,也可以按下按钮,将信息发送到您的ASP.NET服务器(或者更好的WCF服务,然后您可以发布&子)。当然,在这一点上,您不必担心将Excel格式转换为.NET可读格式 - 这可以从插件前端格式化为您的心愿,无论是XML序列化对象,csv,随你。

只是我的$ 0.02的价值......

+0

感谢您的输入,但我对Excel编程有着零的体验。我只知道如何给一张桌子一个边框,就是这个。我不想投资于一项新技术,以获得如此微不足道的东西(在更大的图片中)。 – 2010-06-25 17:04:35

-1

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

我之前就做过这样的导入,但要小心喷气提供商会吃掉连接。

Help me find the leak in this excel import code

我结束了CSV解析,而不是去。

+0

我不知道你在说什么。你正在谈论做与我打算做的完全相同的事情。这个答案的重点是什么? – 2010-06-25 17:05:33

+0

读你的问题 - 你没有说明excel文件内容首先填充数据库。 “从列中提取信息并填充类” – ScottE 2010-06-25 17:56:59

0

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

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

1

FWIW,过去我一直对SpreadsheetGear印象深刻。这对你将不得不做的验证无关紧要,但是你可能会发现这是一种更简单的方式来处理数据。

相关问题