使用Asp.net SSRS 2008(RDLC)命名表格以导出到Excel

时间:2013-01-29 06:55:58

标签: asp.net visual-studio-2008 reporting-services export-to-excel rdlc

我正在开发一个VS 2008 asp.net webforms应用程序,其中包含一个现有的RDLC(客户端文件,不是RDL服务器端文件)。

问题是在导出到excel时,所有的工作表都没有正确命名,即Sheet1,Sheet2等。我在RDL的SQL Server 2008 R2功能上找到了很多关于导出数据的例子,但是我需要它一个 RDLC 解决方案?

有没有人知道如何“修复”这个或者进行某种后期处理来重命名标签,以便客户不会最终看到Sheet1,Sheet2,Sheet3等?

  1. 应用程序正在选择RDLC文件的路径
  2. 添加DataSource
  3. 选择xls
  4. 是否所有回复
  5. 我看到这个Stackoverflow链接How to get named excel sheets while exporting from SSRS,但是:

    1. 无法执行宏
    2. 无法以SSML格式导出
    3. 不使用RDL / SQL Server 2008 R2 SSRS ,因此其他答案会误导使用RDLC的人

3 个答案:

答案 0 :(得分:2)

RDLC报告的版本不支持工作表重命名。我猜你不能升级。所以这是一个解决方法:将报告正常保存到文件中。然后使用Microsoft.Office.Interop.Excel或任何其他Excel库再次打开它以重命名工作表。一旦你这样做保存,你就完成了。

using Excel = Microsoft.Office.Interop.Excel; 


Excel.ApplicationClass xl=new Excel.ApplicationClass();
    Excel.Workbook xlBook;
    Excel.Worksheet xlSheet;
    string filePath = Server.MapPath(@"\report.xls");
    xlBook = (Workbook)xl.Workbooks.Open(filePath,Type.Missing,
      Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing
     ,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);
    xlSheet = (Worksheet)xlBook.Worksheets.get_Item(1);
    xlSheet.Name = "New Sheet Name";
    xlBook.Save();
    xl.Application.Workbooks.Close();

如果此库不适合您可以使用的不同库的列表:免费库  1.关闭XML库 - http://closedxml.codeplex.com/documentation  2.打开XML SDK - http://msdn.microsoft.com/en-us/library/bb448854.aspx  3. NOPI - http://npoi.codeplex.com/  4. CarlosAG - http://www.carlosag.net/Tools/ExcelXmlWriter/

付费图书馆  5.电子表格装备  6.智能XLS  7.办公室作家  8. Spire

答案 1 :(得分:0)

我会升级到RDL 2010架构 - 它支持Excel命名表(以及其他有用的增强功能):

http://msdn.microsoft.com/en-us/library/ee960138.aspx

答案 2 :(得分:-1)