2010-11-26 62 views
1

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

我完全没有Office自动化或VSTO的经验。我尝试过在线查看,但大部分我看过的教程似乎都让我感到困惑。因此,我的想法是,我会使用.NET和VSTO遍历数据行(或使用LINQ,无论有什么意义),并确定涉及的项目是插入还是更新项目。在工作表中有颜色突出显示增量,所以我想我可以使用它,或者我可以查找一些关键数据来确定条目是否存在。一旦我建立了我正在处理的内容,就可以调用生成SQL语句的方法来插入或更新数据。插入将非常容易,我可以使用增量高亮来确定哪些字段需要更新更新项目。

我会很好地将SQL输出到一个文件,或者甚至在该行的最后一个单元格中为给定行添加SQL的测试。我们将非常感谢您对某些示例代码,示例,how-tos或其他方面的任何指导,这些将会使我朝着正确的方向发展。我不挑剔。如果有一些工具我不知道,或者使用现有的工具,我没有想到要完成生成SQL来完成任务的基本任务,那么我就是为了它。

如果您需要任何其他信息随时问。

干杯,

史蒂夫

+0

您忘了提及您要使用哪个分贝。 – 2010-11-26 21:44:45

+0

@Doc Brown - 谢谢。编辑包含对MS SQL 2005的引用。 – 2010-11-26 21:46:44

回答

3

我建议尝试VSTO前,让事情变得简单,并得到一些经验,如何用Excel VBA解决这样的问题。恕我直言,这是学习Excel对象模型最简单的方法,尤其是因为您手边有宏记录器。稍后,如果您认为必须切换到C#,VSTO或自动化或(更好!)Excel DNA,则可以重新使用此知识。

对于Excel VBA,也有很多的教程在那里,这里是一个:

http://www.excel-vba.com/excel-vba-contents.htm

如果你需要知道如何在VBA程序中执行像INSERT或UPDATE任意的SQL命令,看这个SO职位:

Excel VBA to SQL Server without SSIS

这里是另一个SO发布展示如何从一个SQL Server数据到Excel电子表格:

Accessing SQL Database in Excel-VBA