水晶报表导出Excel! 报表中画的线和框等导出到excel之后都没有了???

水晶报表导出Excel!   报表中画的线和框等导出到excel之后都没有了???

在网上搜集下资料,发现确实难以实现!!

网络上提到的方法 大概有以下:

1、如果你使用VS2005,可以使用RDLC报表,导出的Excel效果十分好。

2、可以考虑用文本框代替线。

3、
水晶报表自带的导出Excel不太完美,导出的文件没有网格线,要使它出现网格线就要自己写导出方法.要注意的一点是只有用强类型的水晶报表才可以写自定义的导出方法(个人意见)。方法步骤:
1,  创建个数据集
2,  在业务层创建水晶报表文件(强类型水晶报表就是把水晶报表放在项目里面,而不是网站里,这样在界面可以调用报表文件相关的方法)
3,  报表绑定:
在方法前面声明必要的参数

    ReportDocument ReportDoc;

    TableLogOnInfo logOnInfo;

    DiskFileDestinationOptions FileOPS;

    ExportOptions ExOPS;

    CrystalReport1 cr = new CrystalReport1();

绑定代码:

            DataSet1 ds = new DataSet1();

            SqlConnection con = new SqlConnection("server=YWG;uid=sa;pwd=;database=jcjyzbxj");

            SqlDataAdapter da = new SqlDataAdapter("SELECT DM,MC FROM DM_XB", con);

            da.Fill(ds, "DM_XB");

            cr.SetDataSource(ds);

            CrystalReportViewer1.ReportSource = cr;

导出Excel代码:

调用Excel的方法:

    protected void Button1_Click(object sender, EventArgs e)

    {

        DataSet1 ds = new DataSet1();

        SqlConnection con = new SqlConnection("server=YWG;uid=sa;pwd=;database=jcjyzbxj");

        SqlDataAdapter da = new SqlDataAdapter("SELECT DM,MC FROM DM_XB", con);

        da.Fill(ds, "DM_XB");

        cr.SetDataSource(ds);

        CrystalReportViewer1.ReportSource = cr;

 

        string ReportFile = Server.MapPath("CrystalReport1.rpt");

        string ExcelFileName = "g://myExcel.xls";

 

        bool msg= ExportToExcel(ReportFile, ds, ExcelFileName);

       

    }

导出Excel的方法:

public bool ExportToExcel(string ReportFile, object ReportDataSource, string ExcelFileName)

    {

        try

        {

            ReportDoc = new ReportDocument();

            logOnInfo = new TableLogOnInfo();

            FileOPS = new DiskFileDestinationOptions();

            cr.Load(ReportFile);

            cr.SetDataSource(ReportDataSource);

            FileOPS.DiskFileName = ExcelFileName;

            ExOPS = cr.ExportOptions;

            ExOPS.DestinationOptions = FileOPS;

            ExOPS.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;

            ExOPS.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.ExcelRecord;

            cr.Export();

            System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;

            Response.ClearContent();

            Response.ClearHeaders();

            //Response.ContentType = contentType;

            //Response.WriteFile(ExcelFileName);

            Response.Flush();

            Response.Close();

 

 

            return true;

        }

        catch

        {

            return false;

        }

    }

需要注意的地方:1在导出Excel以前一定要重新绑定一次数据,要不导出的文件没有数据

2导出Excel的文件类型要是ExcelRecord,不能是Excel否则一样没有网格线

---------------------------------------------

以上没有 亲自去证实!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值