【问题标题】:Naming of Sheets using Asp.net SSRS 2008 (RDLC) for export to Excel使用 Asp.net SSRS 2008 (RDLC) 命名工作表以导出到 Excel
【发布时间】:2013-01-29 06:55:57
【问题描述】:

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

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

有谁知道如何“修复”此问题或进行某种后处理以重命名选项卡,以便客户最终不会看到 Sheet1、Sheet2、Sheet3 等?

  1. 应用程序正在选择 RDLC 文件的路径
  2. 添加数据源
  3. 选择 xls
  4. 是否所有响应

我看到了这个 Stackoverflow 链接 How to get named excel sheets while exporting from SSRS,但是:

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

【问题讨论】:

  • 任何有 NPOI 或 Microsoft.Office.Interop.Excel 经验的人?这些似乎是合理的集成解决方案。
  • 权威答案500分。谢谢

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


【解决方案1】:

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. 尖顶

【讨论】:

  • 我尝试绕过 COM 访问错误,但随后出现“无法找到文件”...或其他问题,例如被锁定(即使 Excel 已关闭)。
  • @lcarter 请帮助清理一些事情以获取过去的权限,因为我还没有让它工作。我看到有些人使用 Interop on 而其他人则使用 NPOI。
  • 谢谢,毕竟这是我一直在寻找的东西......与互操作。希望设置起来更容易,因为很多人都有 SHEET1 等问题。
  • 所以我最终改用 NPOI 免费库,效果很好npoi.codeplex.com
【解决方案2】:

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

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

【讨论】:

  • 我没有亲自做过。通常要升级报表文件,您只需在报表设计器 (VS) 中打开它。
【解决方案3】:

【讨论】:

  • 如果您知道还有其他方法可以使用它们。你怎么知道我不是一个经验丰富的专业人士,而最好的证明方式是使用上面的参考资料?如果我自己写了与上述类似的答案,或者在互联网上反刍,那就不那么专业了,因为没有给出任何证据,这只是我的话。
  • 我重复我的专业回答,你将无法升级到 RDL。
  • 抱歉,不是要攻击你,但我明确表示“2. 无法导出为 SSML”,但您显示了 spacefold.com/lisa/post/… 的 URL,其中的“ SSML”所以我说,你应该假设我不想要那个,我发现那篇文章对于拥有这个百万美元项目的十亿美元公司的客户来说是不可接受的。 500 分是给 1. 解决问题或 2. 显示解决问题的代码的人。谢谢
  • @TomStickel - 请不要侮辱在这里试图帮助你的人。你的cmets是彻头彻尾的辱骂,我已经删除了它们。这不是鼓励人们回答您的问题的方式。
  • @BradLarson 我正在寻找权威和专业的回复。如果答案显然不专业并且只是快速的谷歌搜索,那么它没有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 2015-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多