c# - 使用 VSTO 处理 Excel 数据?

标签 c# excel vsto

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

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

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

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

对一些示例代码、示例、操作方法或任何能引导我朝着正确方向前进的任何方向都将不胜感激。我不挑剔。如果有一些我不知道的工具或使用现有工具的方法来完成生成 SQL 以完成任务的基本任务,那么我完全赞成。

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

干杯,

史蒂夫

最佳答案

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

对于 Excel VBA,有很多教程,这里有一个:

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

如果您需要知道如何在 VBA 程序中执行任意 SQL 命令(如 INSERT 或 UPDATE),请查看此 SO 帖子:

Excel VBA to SQL Server without SSIS

这是另一个 SO 帖子,展示了如何将数据从 SQL 服务器获取到 Excel 电子表格中:

Accessing SQL Database in Excel-VBA

关于c# - 使用 VSTO 处理 Excel 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4288688/

相关文章:

.net - 可以将 DebuggerDisplay 属性应用于 Microsoft.Office.Interop.Word.Range 吗?

c# - Silverlight - 如何在 XAML 中进行国际化?

excel - 是否可以通过 VBA 中的内容找到单元格?

Excel VLOOKUP N/A 错误

c# - 以实际大小导出 PowerPoint 形状

c# - ContentControl 的格式泄露到控制之外

c# - 使用 Json.NET 的流利转换器/映射器?

c# - 通过代码运行/执行 Exchange 2010 收件箱规则

c# - 通过 JavaScript 将值分配给 Asp.net 标签,然后通过 C# session 对象传递时出现问题

excel - 将 png 图形文件从 Stata 写入 Excel