不用生成临时文件的生成报表操作(带有模板的)

   using System.IO;

 

    //中间函数忽略不计

 

    string strContent = somethings;    //假使现在somethings是包含数据读取的字符串

    string strPath = Request.PhysicalApplicationPath + "Templates//";    //模板存放路径

    string strTempNm = "a.txt";   //模板名称

    string strFileNm= DateTime.Now.ToString("yyyyMMddhhmmss")+".xls";   //文件名称

 

    StreamReader sr = new StreamReader(strPath+strTempNm,System.Text.Encoding.UTF8);   //读取模板

    string str = sr.ReadToEnd();

    str = str.Replace("[@abc]",strContent);   //[@abc]是模板中设置的一个变量

 

    try

    {

            //获取或设置输出流的字符集

            Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");

            //将一个http头添加到输出流

            Response.AddHeader("Content-Disposition",string.Format("attachment:filename={0}",strFileNm));  

            //将一个二进制字符串写入http输出流

            Response.BinaryWrite(System.Text.Encoding.GetEncoding("utf-8").GetBytes(str));

            //向客户端发送当前所有缓冲的输出

            Response.Flush();

      }

     catch(Exception ex)

     {

            Console.Write(ex.Message);

      }

 

 

注意:若要采用这种不通过生成临时文件而直接产生报表的方法,其前台页面不能存在类似于<link href="../../css/HQIndex.css" rel="stylesheet" type="text/css">或者<script src="../../VisifireControls/Visifire.js"></script>等内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值