针对SSRS2005导出到Excel文件不能命名sheet的处理办法

 

针对SSRS2005导出到Excel文件不能命名sheet的处理办法

 

l  环境:

Ø  前端:Silverlight页面

Ø  后端:WCF Service、SSRS2005

 Microsoft.Office.Interop.Excel.dll

(C:\Program Files\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office12)

根据需要配置dcom的Microsoft Excel Application的属性值,如用户权限等。

 前端页面调用后端的服务,直接生成报表的excel文件,保存到前端机器上。

 

l  解决方法:

Ø  后端

  1. 利用ReportExecutionService类的方法调用report(rdl)。

LoadReport(),装载报表。

Render(),生成excel格式字节流。

  1. 使用FileStream生成并保存临时文件。
  2. 使用excel对象编辑文件

利用以下对象修改excel文件内容,如sheet的命名、删除单元格等:

Application、Workbook、Worksheet、Range

        Workbook workbook = excelApp.Workbooks.Open(path);

 (worksheet.Cells[1, index] as Range).EntireColumn.Delete(XlDirection.xlDown);

        workbook.Save();

workbook.Close(Type.Missing, Type.Missing, Type.Missing);

excelApp.Quit();

System.Threading.Thread.CurrentThread.CurrentCulture = CurrentCI;

     

      关闭(全部)进程:

foreach (var process in Process.GetProcessesByName("EXCEL"))

{

process.Kill();

}

 

英文版excel可能有问题, 需改CultureInfo,完后改回:

        System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture;

        System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

      …

        System.Threading.Thread.CurrentThread.CurrentCulture = CurrentCI;

 

 

  1. 最后以文件字节返回给前端。

return File.ReadAllBytes(path);

 

 

Ø  后端

保存字节流为excel文件即可。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值