ASP.Net - 将SQL查询结果导出到Excel

时间:2012-07-19 09:52:05

标签: asp.net sql vb.net excel

我希望将SQL查询的结果导出到Excel,格式化为模板。

基本上用户点击数据行,查询针对该特定参数执行,并且用户可以选择保存到Excel文件。

  1. 如何将此数据插入Excel模板。
  2. 我是否可以绕过将Excel文件保存到某个位置,以便仅提示用户,因此如果未保存取消的文件?
  3. 干杯

    比尔

3 个答案:

答案 0 :(得分:0)

我建议您在运行时使用查询返回的结果而不是.xls

在C#中创建.csv文件

.csv文件可以在Excel中打开,因此您仍然可以在最后使用excel作为应用程序

创建csv文件后,您可以在其中打开excel,如System.Diagnostics.Process.Start("yourExcelFile.xls");

另请注意此链接,因此我不建议您使用Office of Automation

  

来自http://support.microsoft.com/kb/257757 Microsoft的段落   目前不建议,也不支持自动化   Microsoft Office应用程序来自任何无人值守的非交互式应用程序   客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT   服务),因为Office可能表现出不稳定的行为和/或   在此环境中运行Office时出现死锁。

答案 1 :(得分:0)

为了做到这一点,我建议在Excel工作表后面写一些VBA代码(Alt F11会带你到编码窗口)

然后编写一些代码来调用存储过程(以下链接中的VBA示例)

http://support.microsoft.com/kb/185125

获得数据后,将其直接存储到文件而不是用它填充表单应该不难。

答案 2 :(得分:0)

我会使用常规解决方案将数据从sql server和excel(作为行和列)中获取,但将返回的数据放在与模板不同的工作表中。

http://blogs.office.com/b/microsoft-excel/archive/2010/06/07/running-a-sql-stored-procedure-from-excel-no-vba.aspx
http://codebyjoshua.blogspot.com.au/2012/01/get-data-from-sql-server-stored.html

一旦您的数据在Excel中,在模板工作表中,只需使用每个数据项的数据表链接('= Sheet2!A6')。

HTH
mcalex