首先,目前我是在Json里面使用的,然后关于HTML+WebService+Json怎么使用,可以看看Jsonp跨域的相关例子。

本次的实现原理是:通过HTML传送参数到WebService,然后在WebService生成Excel文件,然后保存在服务器上,然后服务器返回文件的相对路径,然后HTML接收到路径,直接下载;
下面我直接贴出WebService的代码;
        /// <summary>
        /// 获取房间每小时报表
        /// </summary>
        [WebMethod(EnableSession = true)]
        public void GetRoomReportOfHour()
        {
            HttpContext.Current.Response.ContentType = "application/json;charset=utf-8";
            string jsonCallBackFunName = HttpContext.Current.Request.Params["jsoncallback"].ToString();
            //上面代码必须,不能注释
            //中间代码执行自己的业务操作,可返回自己的任意信息(多数据类型)
            string strJson = "";
            string Date = HttpContext.Current.Request["Date"];
            string DeptID = HttpContext.Current.Request["DeptID"];
            string BuildId = HttpContext.Current.Request["BuildId"];
            if (!string.IsNullOrWhiteSpace(Date) && !string.IsNullOrWhiteSpace(DeptID) && !string.IsNullOrWhiteSpace(BuildId))
            {
                int iDepartID = DataFormat.ConvertDBNullToInt32(DeptID);
                DateTime dtTime = DataFormat.ConvertDBNullToDateTime(Date);
                List<ModelForDepartmentOrRoomOfHour> mList = DataLoader.GetRoomOfHour(dtTime, DeptID, BuildId);
                if (mList.Count > 0)
                {
                    string strReportDate = DateTime.Now.ToString("yyyy-MM-dd");
                    string strDepartName = DataLoader.GetDepartInfoByDepartID(iDepartID).DeptName;
                    string strBuildName = DataLoader.GetBuildInfoByBuildID(BuildId).F_BuildName;
                    DataTable dtSource = DTListFormat.ListToDataTable(mList);
                    //Excel的路径 是放excel模板的路径
                    WorkbookDesigner designer = new WorkbookDesigner();
                    string strSystemPath = HttpContext.Current.Server.MapPath("~");
                    designer.Open(strSystemPath + "/excel/RoomReportOfHour.xls");
                    Worksheet sheet = designer.Workbook.Worksheets[0];
                    var c124 = sheet.Cells[1, 24];//第二行 第25列,导出日期
                    c124.PutValue(strReportDate);
                    var c33 = sheet.Cells[3, 3];
                    c33.PutValue(strBuildName);
                    var c36 = sheet.Cells[3, 6];
                    c36.PutValue(strDepartName);
                    var c312 = sheet.Cells[3, 12];
                    c312.PutValue(Date);
                    sheet.Cells.ImportDataTable(dtSource, false, 6, 0, true);
                    SaveOptions s = new XlsSaveOptions(SaveFormat.Excel97To2003);
                    string str = "";
                    str = HttpUtility.UrlEncode(string.Format("{0}.xls", DateTime.Now.ToString("yyyyMMddHHmmss")), Encoding.UTF8).ToString();
                    designer.Workbook.Save(strSystemPath + "/Attachment/" + str);//通过这个方法,就可以通过WebService来使用Excel文件保存和文件下载了。
                    ModelForReport aReport = new ModelForReport()
                    {
                        strUrl = "Attachment/" + str
                    };
                    strJson = JsonHelper.Serialize(aReport);
                }
            }
            //下面代码必须,不能注释
            HttpContext.Current.Response.Write(string.Format("{0}({1})", jsonCallBackFunName, strJson));
            HttpContext.Current.Response.End();
        }

HTML端:
            function fExportReportOfDay() {
                var date = $("#IdForDayTime").val();
                var DepartId = $('#DeptID').combobox('getValue') //获取当前选中的值;
                var BuildID = $('#BuildID').combobox('getValue') //获取当前选中的值;
                $.ajax({
                    type: 'GET',
                    url: vUrlPre + 'WebService.asmx/GetRoomReportOfHour?jsoncallback=?',
                    dataType: 'jsonp',
                    data: {
                        Date: date,
                        DeptID: DepartId,
                        BuildId: BuildID
                    },
                    success: function(data) {
                        var vUrl = vUrlPre + data.strUrl;//解释一下,vUrlPre是一个全局的参数,是远程WebService的服务地址,例如:http://www.webservice.com/
                        fDownLoad(vUrl);
                    },
                    error: function(data) {
                        var vData = JSON.stringify(data);
                    }
                })

}  

WebService中使用Aspose.Cells.dll的更多相关文章

  1. C# WinForm 导出导入Excel/Doc 完整实例教程[使用Aspose.Cells.dll]

    [csharp] view plain copy 1.添加引用: Aspose.Cells.dll(我们就叫工具包吧,可以从网上下载.关于它的操作我在“Aspose.Cells操作说明 中文版 下载 ...

  2. C# WinForm使用Aspose.Cells.dll 导出导入Excel/Doc 完整实例教程

    1.添加引用: Aspose.Cells.dll(我们就叫工具包吧,可以从网上下载.关于它的操作我在“Aspose.Cells操作说明 中文版 下载 Aspose C# 导出Excel 实例”一文中的 ...

  3. 在ASP.NET MVC中利用Aspose.cells 将查询出的数据导出为excel,并在浏览器中下载。

    正题前的唠叨 本人是才出来工作不久的小白菜一颗,技术很一般,总是会有遇到一些很简单的问题却不知道怎么做,这些问题可能是之前解决过的.发现这个问题,想着提升一下自己的技术水平,将一些学的新的'好'东西记 ...

  4. C# 读写Excel的一些方法,Aspose.Cells.dll

    需求:现有2个Excel,一个7000,一个20W,7000在20W是完全存在的.现要分离20W的,拆分成19W3和7000. 条件:两个Excel都有“登录名”,然后用“登录名”去关联2个Excel ...

  5. Aspose.Cells.dll引用导入导出Excel

    Aspose.Cells 导入导出EXCEL 文章出处:http://hi.baidu.com/leilongbing/item/c11467e1819e5417595dd8c1 修改样式       ...

  6. Aspose.Cells.dll操作execl

    附件:Aspose.Cells.dll 1.创建execl(不需要服务器或者客户端安装office) public void DCExexl(DataTable dt) {  Workbook wb ...

  7. C# Aspose.Cells.dll Excel操作总结

    简介 Aspose.Cells是一款功能强大的 Excel 文档处理和转换控件,不依赖 Microsoft Excel 环境,支持所有 Excel 格式类型的操作. 下载 Aspose.Cells.d ...

  8. C# 利用Aspose.Cells .dll将本地excel文档转化成pdf(完美破解版 无水印 无中文乱码)

    Aspose.Cells .dll下载  http://pan.baidu.com/s/1slRENLF并引用 C#代码 using System; using System.Collections. ...

  9. Asp.Net中应用Aspose.Cells输出报表到Excel 及样式设置

    解决思路: 1.找个可用的Aspose.Cells(有钱还是买个正版吧,谁开发个东西也不容易): 2.在.Net方案中引用此Cells: 3.写个函数ToExcel(传递一个DataTable),可以 ...

随机推荐

  1. C++ 类对象和 指针的区别

    C++ 类对象和 指针的区别 C++ 类对象和 指针的区别 转自:http://blog.csdn.net/ym19860303/article/details/8557746 指针的情况 class ...

  2. winform下如何实现右下角弹窗效果

    [DllImport("user32")] private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, in ...

  3. 有状态Bean和无状态Bean的定义

    有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”:一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束.即每个用户最初都会得到一个初 ...

  4. Swift 3 and OpenGL on Linux and macOS with GLFW

    https://solarianprogrammer.com/2016/11/19/swift-opengl-linux-macos-glfw/ Swift 3 and OpenGL on Linux ...

  5. C# WinForm 中英文实现, 国际化实现的简单方法

    来源:http://www.jb51.net/article/45675.htm,今天看到了借鉴过了,保存一下,下次开发直接用嘻嘻 软件行业发展到今天,国际化问题一直都占据非常重要的位置,而且应该越来 ...

  6. Github上传代码菜鸟超详细教程

      最近需要将课设代码上传到Github上,之前只是用来fork别人的代码. 这篇文章写得是windows下的使用方法. 第一步:创建Github新账户 第二步:新建仓库 第三部:填写名称,简介(可选 ...

  7. PostgreSQL 杂志

    pgmag 团队刚发布了头两期 PostgreSQL 杂志,还有中文版http://pgmag.org/download,推荐广大 PostgreSQL 数据库管理员及开发者阅读: Issue #01 ...

  8. 动态sql

    目录 1.给动态语句传值(USING 子句) 2.从动态语句检索值(INTO子句) 3.动态调用存过 4.将返回值传递到PL/SQL记录类型;同样也可用%rowtype变量 5.传递并检索值.INTO ...

  9. 用"hosting.json"配置ASP.NET Core站点的Hosting环境

    通常我们在 Prgram.cs 中使用硬编码的方式配置 ASP.NET Core 站点的 Hosting 环境,最常用的就是 .UseUrls() . public class Program { p ...

  10. C++高精度计时器——微秒级时间统计

    在C++中,经常需要通过计时来统计性能信息,通过统计的耗时信息,来分析性能瓶颈,通常情况下,可能毫秒级别的时间统计就足够用了,但是在毫厘必争的性能热点的地方,毫秒级别的统计还是不够的,这种情况下,就需 ...