zoukankan      html  css  js  c++  java
  • Silverlight 图表下载到Excel文件中

    一、Silverlight xaml.cs文件按钮触发方法

     1、//下载图表
            private void btnDown_Click(object sender, RoutedEventArgs e)
            {
        DBServiceClient svc = new DBServiceClient();
                svc.GenerateExcelReportAsync();
                svc.GenerateExcelReportCompleted += new EventHandler<GenerateExcelReportCompletedEventArgs>(svc_GenerateExcelReportCompleted);
                       }

    2、//委托 在本地弹出下载提示框 并删除服务器上的Excel文件

            private void svc_GenerateExcelReportCompleted(object sender, GenerateExcelReportCompletedEventArgs e)
            {
                string strExcelName = e.Result;
                string strUri = Application.Current.Host.Source.AbsoluteUri.Substring(0, Application.Current.Host.Source.AbsoluteUri.IndexOf("/ClientBin")) + "/Temp/" + strExcelName;
                strUri = "window.location.href='" + strUri + "';";
                System.Windows.Browser.HtmlPage.Window.Eval(strUri);//本地弹出下载提示框
                //删除Excel临时文件
                DBServiceClient svc = new DBServiceClient();
                svc.DeleteExcelReportAsync();
                        }

    二、wcf

    1、 //下载图表
            [OperationContract]
            [ServiceKnownType(typeof(ListItem))]
            public string GenerateExcelReport()
            {
                string strTemplatePath = "ReportMgt\Template\SilverlightChart\" + strAppCode;
                string strExcelVisualPath = string.Format("/{0}/{1}.xls", strTemplatePath, strChartExcelName);//Excel模板地址
                strExcelVisualPath = Context.Request.ApplicationPath + strExcelVisualPath;
                DataSet ds = new DataSet();
                ds = dtChart.DataSet;
                string strExcelChartPath = new CreateExcelChart().Create(strExcelVisualPath, ds, strTitleChart, "", "");//下载报表到指定地址(Temp文件夹下)

                strExcelName = string.Format("{0}.xls", strTitleChart);
                return strExcelName;
            }

    2、//删除服务器上的图表
            [OperationContract]
            [ServiceKnownType(typeof(ListItem))]
            public void DeleteExcelReport()
            {
                //检查目录是否存在(根据虚拟地址转换成物理地址)
                string path = Context.Server.MapPath(Context.Request.ApplicationPath) + "\Temp\" + strExcelName;
                //File.Exists("D:\iirs2010new\sln\BS.EAP.Portal\Temp/XXXXXx产量变化图.xls")
                if (File.Exists(path))
                {
                    File.Delete(path);
                }
            }

  • 相关阅读:
    JavaScript周报#185
    让你跟上nodejs的资源
    微信服务号开发笔记
    Algs4-2.1.15昂贵的交换
    Algs4-2.1.14出列排序
    Algs4-2.1.13纸牌排序-按花色排序
    Algs4-2.1.12令希尔排序打印出递增序列的每个元素所带来的比较次数和数组大小的比值
    Algs4-2.1.10在希尔排序中为什么实现h有序时不使用选择排序?
    Algs4-2.1.11希尔排序序列改为存数组
    Algs4-2.1.9给出希尔排序的轨迹
  • 原文地址:https://www.cnblogs.com/xuxin-1989/p/3862927.html
Copyright © 2011-2022 走看看