C# 用VSTO处理Excel数据?

C# 用VSTO处理Excel数据?,c#,excel,vsto,C#,Excel,Vsto,我发现自己拥有一个Excel电子表格,其中包含大约3000行数据,这些数据表示我需要对SQL表进行的数据添加或更改。你可以想象,手动处理有点太多了。由于一些我无法控制的原因,我不能简单地使用SSIS包或其他更简单的方法将这些更改导入数据库。我唯一的选择是创建SQL脚本,将电子表格中表示的更改转换为MS SQL 2005 我绝对没有办公自动化或VSTO方面的经验。我试着在网上查找,但我看到的大多数教程对我来说似乎有点困惑 因此,我的想法是使用.NET和VSTO来迭代数据行(或者使用LINQ,任何有

我发现自己拥有一个Excel电子表格,其中包含大约3000行数据,这些数据表示我需要对SQL表进行的数据添加或更改。你可以想象,手动处理有点太多了。由于一些我无法控制的原因,我不能简单地使用SSIS包或其他更简单的方法将这些更改导入数据库。我唯一的选择是创建SQL脚本,将电子表格中表示的更改转换为MS SQL 2005

我绝对没有办公自动化或VSTO方面的经验。我试着在网上查找,但我看到的大多数教程对我来说似乎有点困惑

因此,我的想法是使用.NET和VSTO来迭代数据行(或者使用LINQ,任何有意义的),并确定所涉及的项是插入项还是更新项。工作表中有颜色高亮显示以显示增量,因此我想我可以使用它,或者我可以查找一些关键数据以确定条目是否存在。一旦确定了要处理的内容,我就可以调用生成SQL语句的方法来插入或更新数据。插入将非常容易,我可以使用增量高光来确定哪些字段需要更新更新项

我可以将SQL输出到一个文件中,或者甚至在该行的最后一个单元格中添加给定行的SQL测试

非常感谢您对一些示例代码、示例、how-tos或任何能引导我走向正确方向的东西的指导。我不挑剔。如果有一种工具我不知道,或者有一种方法可以使用一个我没有想到的现有工具来完成生成SQL以完成任务的基本任务,那么我完全支持它

如果您需要任何其他信息,请随时询问

干杯


Steve

我建议在尝试VSTO之前,保持简单,并获得一些使用Excel VBA解决此类问题的经验。这是学习Excel对象模型最简单的方法,尤其是因为您手头有宏记录器。当您认为必须切换到C#、VSTO或Automation或(更好!)时,您可以在以后重复使用这些知识

对于Excel VBA,有很多教程,下面是一个:

如果您需要了解如何在VBA程序中执行任意SQL命令,如INSERT或UPDATE,请参阅以下文章:

下面是另一篇SO帖子,展示了如何将数据从SQL server获取到Excel电子表格中:


您忘了提到要使用哪个数据库。@布朗医生-谢谢。编辑后包含对MS SQL 2005的引用。这是一次性的事情还是需要重复的事情?@Conrad-很难说。有人告诉我一件事,但我不确定我是否相信。在这个项目上,变化似乎比大多数人更为一致。谢谢。我没有和VSTO结婚,在目前的情况下VBA可能会为我工作。