Excel加载项数据验证

时间:2012-02-08 16:06:50

标签: c# excel validation vsto

我正在努力说服自己哪个想法更好。任何意见将是有益的。这是故事:

我有一张excel表,其中包含代表项目的每一行的项目。我需要验证数据以检查有效性。当且仅当该项目的每个数据元素都有效时,项目才有效。也有人在一个项目上工作。可以有很多人在一个项目上工作(假设一个人只能在一个项目上工作)。因此,对于每个人,我需要确认它是一组字段,并确保它引用的项目实际上存在。在验证了所有内容之后,我会将项目和人员推送到数据库。

需要考虑的另一件事是,可能有数千个项目。凭借这种美德,还可以有更多的人。

我有两种验证技巧:

  1. 使项目和人员对象负责自己的数据验证。这意味着我必须在验证时创建对象,然后在它们全部验证后推送它们。我不认为将这么多对象存储在内存中进行验证然后再推送是可行的。
  2. 使用单独的功能验证数据。该函数只会查看数据,确定其类型,并确保它满足约束 - 无论它是属于个人还是项目。这避免了创建的项目和人物对象,但这也意味着我必须再次通过数据来创建这些对象。这也意味着如果我向项目中添加另一个字段,我必须将另一个相应的部分添加到验证器函数中。

1 个答案:

答案 0 :(得分:0)

绝对数字1.创建几千个对象就可以了。你可能已经有了一大堆内存可以使用,这是非常多的:)只要保持你的对象尽可能小,它就可以了。

如果是我,我甚至不愿意把它写成VSTO excel插件 - 我会写一个单独的ASP.NET网页,他们可以上传他们的excel文件。从那里你可以解析它,验证它并将其插入你的数据库。只是吐出“由于Y缺失而在单元格X上失败”消息。如果您将其作为加载项编写,那么您需要有人在所有用户计算机上安装它,并且需要推送和更新任何错误修复程序,这将是PITA。如果你真的需要做一些聪明的excel交互,我只会走VSTO路线。