0

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

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

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

干杯

账单

4

3 回答 3

0

为此,我建议您在 Excel 工作表后面编写一些 VBA 代码(Alt F11 将带您进入编码窗口)

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

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

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

于 2012-07-19T15:36:44.887 回答
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

于 2012-08-20T10:34:14.060 回答
0

我建议您在运行时根据查询返回的结果而不是 .xls 在 C# 中创建 .csv 文件

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

创建csv文件后,您可以像这样在其中打开excelSystem.Diagnostics.Process.Start("yourExcelFile.xls");

另请参阅此链接,因此我不建议您使用 Office 自动化

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

于 2012-07-19T10:41:55.657 回答