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);
                }
            }

  • 相关阅读:
    Codeforces Gym 101138 D. Strange Queries
    BZOJ 4236: JOIOJI
    BZOJ 2654: tree
    POJ 1390 Block
    2048
    BZOJ 2412: 电路检修
    BZOJ 2448: 挖油
    BZOJ 3907: 网格
    Codeforces 727 D T-shirts Distribution
    BZOJ 1485: [HNOI2009]有趣的数列
  • 原文地址:https://www.cnblogs.com/xuxin-1989/p/3862927.html
Copyright © 2011-2022 走看看