我正在开发一个VS 2008 asp.net webforms应用程序,其中包含一个现有的RDLC(客户端文件,不是RDL服务器端文件)。
问题是在导出到excel时,所有的工作表都没有正确命名,即Sheet1,Sheet2等。我在RDL的SQL Server 2008 R2功能上找到了很多关于导出数据的例子,但是我需要它一个 RDLC 解决方案?
有没有人知道如何“修复”这个或者进行某种后期处理来重命名标签,以便客户不会最终看到Sheet1,Sheet2,Sheet3等?
我看到这个Stackoverflow链接How to get named excel sheets while exporting from SSRS,但是:
答案 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命名表(以及其他有用的增强功能):
答案 2 :(得分:-1)