gpt4 book ai didi

database - 您通常如何将数据从电子表格导入多个数据库列?

转载 作者:太空狗 更新时间:2023-10-30 01:49:04 24 4
gpt4 key购买 nike

无论出于何种原因,我有很多客户都将现有数据存储在电子表格中。每个电子表格中通常有成百上千个项目,要求客户通过网站手动输入它们(或者上帝禁止我自己以这种方式导入它们)是不可能的。通常,此数据不会简单地将电子表格列映射到数据库列。那太简单了。通常,数据需要在进入数据库之前进行操作(数据需要用逗号等分隔)或者数据需要分布在多个表中。或者两者兼而有之。

我问这个问题,不是因为我不知道有多种方法可以做到这一点,而是因为我还没有确定一种不会觉得它需要比应该做的更多工作的方法。到目前为止,我已经采用了以下所有方法(可能还有更多我忘记的方法):

  • 使用Excel修改数据,导入更简单一些
  • 将整个电子表格导入临时表,然后用SQL导入
  • 编写脚本并使用它导入数据(我使用过 VBScript、C#,现在使用 Ruby)

到目前为止,使用脚本似乎是最灵活的方式,但仍然感觉有点笨拙。我必须完成这项任务,以至于我什至考虑过为它编写一点 DSL,只是为了加快速度。

但在我这样做之前,我很好奇,有没有更好的方法?

最佳答案

如果可以的话,你必须设定界限。您应该尝试为他们提供一个模板,以便他们使用预期的数据,其中包括文件类型(Excel、csv 等)、列名、有效值等。您应该允许他们浏览文件并上传它在您的页面/表单上。

文件上传后,您需要进行验证和导入。您可以使用 ADO.NET、文件流、DTS/SSIS 或办公自动化来执行此操作(如果您使用的是 Microsoft 堆栈)。在验证部分,您应该确切地告诉用户他们做错了什么或需要更改什么。这可能包括让验证页面在数据网格中包含实际数据,并在确切的行/列上提供带有错误的红色标签。如果您使用 Office Automation,您可以给他们确切的手机号码,但 Office PIA 是一个令人头疼的问题。

接受验证后,您可以根据需要导入信息。我更喜欢将它放入暂存表并使用存储过程来加载它,但那只是我。有些人更喜欢使用对象模型,但如果您有大量数据,这可能会非常慢。

如果您亲自手动加载这些文件并不得不进入并操作它们,我建议您找出它们之间的共同点并提出一个可遵循的标准。一旦你有了它,你就可以做到这一点,这样用户就可以自己做,或者你自己可以做得更快。

是的,这是很多工作,但从长远来看,如果有一个程序在 95% 的时间都有效,那么每个人都会赢。

如果这将是一种无法自动化的情况,那么您可能只需要一个普通的暂存表并使用 sql 来导入。您必须将数据加载到一个临时表中,进行基本操作,然后将其加载到您的 SQL 期望的临时表中。

做了那么多import和ETL工具,实在是没有什么好办的。唯一的方法是真正提出一个合理的标准并坚持它并围绕它进行编程。

关于database - 您通常如何将数据从电子表格导入多个数据库列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/390784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com