【发布时间】:2016-01-15 10:47:02
【问题描述】:
我有一个已打开的 Excel 文件。我想编写可以将该文件的数据导出到 SQL Server 数据库表的 C# 代码,而无需提供该打开文件的路径。
Excel.Application sourceApp;
sourceApp = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
sourceApp.Visible = true;
Excel.Workbook sourceWorkBook = sourceApp.ActiveWorkbook;
Excel.Worksheet sourceWorkSheet = sourceWorkBook.ActiveSheet;
Excel.Range sourceRange = sourceWorkSheet.UsedRange;
这是我用于打开 Excel 文件的代码。
如何将它连接到数据库以及导入它的适当方式?
【问题讨论】:
-
就像你在最后一句话中所说的,你的意思是导入而不是导出,并且有太多的方法可以做到这一点,一个可以读取excel然后执行插入,如果数据太多,您可以改用批量插入插入。
-
@AlexKrups 实际上我正在为 vba 应用程序实现这个程序。我会将它用作库并将其附加到 vba 代码中。我不使用 VBA 的原因是 - VBA 缺乏版本控制,这是程序的主要要求。
-
@JuanRuizdeCastilla 是的,我目前正在考虑批量插入,但我面临的主要问题是将 excel 连接到数据库而不提供文件路径,因为我想从已经打开的 excel 表中导出这些数据到数据库(活动一个),并从数据库导入到当前打开的 Excel 表(再次活动一个)
-
你说“缺乏版本控制”是什么意思,你可以对任何文件实施版本控制,我的意思是你可以把你的 vba 代码和使用 git - github 来控制你在 excel 之外的更改,您显然需要 vba 或一些来自 excel 的向导。如果选项是第二个,请告诉我,我会尽力帮助您。
标签: c# sql-server database excel import