如何读取,编辑和写入xls文件,然后导出到SQL Server

我有一个Excel文件,其中有我需要推入到我的SQL Server数据库的联系人列表(约10 K)。 所以,我正在使用Visual Studio 2008编写一个.net Windows程序来读取文件,为每个联系人生成随机密码,然后将这些信息推送到我的SQL Server数据库中。

在2003年处理excel文件很容易,但现在我的电脑已经在办公室2007了,事情似乎改变了。 我正在挖掘Microsoft.Office.Interop.Excel,但似乎比以前复杂得多。

如果是一笔交易,可以将excel文件格式化一下,将其导入并访问数据库,然后将其推回到任何您想要的数据库。

如果你必须用.net来做,你可以通过ODBC使用SQL打开一个excel文件…这有点脆弱,但是我过去用它成功了。

在excel中使用这样的连接string:
Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\ MyExcel.xls; Extended Properties =“Excel 8.0; HDR = Yes; IMEX = 1”;

工作表和命名部分是表名.HDR =是表示第一行包含字段的名称。 我承认这有点奇怪。 🙂

我会采取一个ETL方法来:

  1. 创build一个SSIS包来将数据导入到SQL Server中的临时表中
  2. validation并清理所有导入的数据
  3. 编写一个SQL脚本以随机化每个导入的行的密码,并将该脚本/存储过程从SSIS包中调用为SQL任务
  4. 从暂存表插入实际的数据表

如果这是需要一遍又一遍地完成的,我会把这个包保存到SQL Server中,然后从我的C#程序中调用它。

我不确定这是否会对您有所帮助,但也许SSIS(SQL Server Integration Services)可以帮助您。

除此之外,您可以尝试在Excel中录制macros,同时在Excel中执行所需的操作,当您完成操作时,可以查看录制的macros(ALT + F8)并将其“转换”为.NET代码。

只是一个build议。