从服务器下载excel,还要传参

时间:2021-05-20 17:51:37

$("#btnDown").click(function () {//下載
                    var srow = $("#carAndDriverInfo").bootstrapTable('getSelections');
                    if (srow.length == 0) {
                        toastr.warning("请选择需要下載的數據!");
                        return;
                    }
                    var arrdata = {};
                    for (var i = 0; i < srow.length; i++) {
                        arrdata[i] = srow[i].CARNO;
                    }
                    var oList = document.getElementById("carAndDriverInfo").rows[0].innerText;
                    var thName = oList.replace(/^[\r\t\n]+|[\r\t\n]+$/g, '').replace(/[\r\t\n]+/g, '\n').split('\n');
                    $.ajax({
                        type: "post",
                        url: "/SCBD0104/ExcelDown",
                        data: { thName: thName.toString(), carNoArr: arrdata },
                        //dataType: 'JSON',
                    })
                });

ajax没有excel返回类型。我该怎么接收?直接用按钮,取参不方便吧

  [HttpPost]
        public FileResult ExcelDown(string thName, string[] carNoArr)
        {
            //string excelName = "車輛與司機關係報表.xls";
            //System.Data.DataTable dt = _CarAndDriverRepostory.GetCarAndDriverExcel(carNoArr);
            //ExcelDown daysSendCarExcel = new ExcelDown();
            //bool result = daysSendCarExcel.ExportExcel(dt, thName, excelName);
            string pathName = Server.MapPath("~/Excel/車輛與司機關係報表.xls");
            return File(pathName, "application/ms-excel", "車輛與司機關係報表.xls"); 
        }

11 个解决方案

#1


从服务器下载excel,还要传参

#2


看不懂哪里来的参

#3


ajax不行 要么用iframe或者直接Response输出文件流 或者ajax返回文件地址浏览器打开就保存了

#4


直接在服务器端下载不行吗?

#5


引用 2 楼 xdashewan 的回复:
看不懂哪里来的参

var arrdata = {};
                    for (var i = 0; i < srow.length; i++) {
                        arrdata[i] = srow[i].CARNO;
                    }
看用户勾选了哪些资料

#6


引用 4 楼 meixu568 的回复:
直接在服务器端下载不行吗?

服务器地址和本地地址不一样吗?我在本地可以,传到服务器就报错了。
D:\SendCar\Excel在服务器建了个excel文件夹放。要在d前面加ip地址还是什么

#7


引用 5 楼 happy4944 的回复:
看用户勾选了哪些资料

客户端向服务器传参数吗?那和一般参数一样取有什么疑问呢

#8


引用 6 楼 happy4944 的回复:
Quote: 引用 4 楼 meixu568 的回复:

直接在服务器端下载不行吗?

服务器地址和本地地址不一样吗?我在本地可以,传到服务器就报错了。
D:\SendCar\Excel在服务器建了个excel文件夹放。要在d前面加ip地址还是什么

直接用服务器端代码下载就行了 http://www.cnblogs.com/lengzhan/p/6369500.html

#9


引用 8 楼 meixu568 的回复:
Quote: 引用 6 楼 happy4944 的回复:

Quote: 引用 4 楼 meixu568 的回复:

直接在服务器端下载不行吗?

服务器地址和本地地址不一样吗?我在本地可以,传到服务器就报错了。
D:\SendCar\Excel在服务器建了个excel文件夹放。要在d前面加ip地址还是什么

直接用服务器端代码下载就行了 http://www.cnblogs.com/lengzhan/p/6369500.html

报这个错      检索与CLSID { 46 } 00024500-0000-0000-c000- 0000000000组件的COM类工厂失败的原因如下:80070005访问被拒绝。(例外来自HRESULT: 0x80070005(e_accessdenied))。

#10


引用 7 楼 xdashewan 的回复:
Quote: 引用 5 楼 happy4944 的回复:

看用户勾选了哪些资料

客户端向服务器传参数吗?那和一般参数一样取有什么疑问呢

是一样呀。ajax取参传参方便些

#11


引用 3 楼 u010717459 的回复:
ajax不行 要么用iframe或者直接Response输出文件流 或者ajax返回文件地址浏览器打开就保存了

现在直接按钮触发,没用ajax了,也没传参

#1


从服务器下载excel,还要传参

#2


看不懂哪里来的参

#3


ajax不行 要么用iframe或者直接Response输出文件流 或者ajax返回文件地址浏览器打开就保存了

#4


直接在服务器端下载不行吗?

#5


引用 2 楼 xdashewan 的回复:
看不懂哪里来的参

var arrdata = {};
                    for (var i = 0; i < srow.length; i++) {
                        arrdata[i] = srow[i].CARNO;
                    }
看用户勾选了哪些资料

#6


引用 4 楼 meixu568 的回复:
直接在服务器端下载不行吗?

服务器地址和本地地址不一样吗?我在本地可以,传到服务器就报错了。
D:\SendCar\Excel在服务器建了个excel文件夹放。要在d前面加ip地址还是什么

#7


引用 5 楼 happy4944 的回复:
看用户勾选了哪些资料

客户端向服务器传参数吗?那和一般参数一样取有什么疑问呢

#8


引用 6 楼 happy4944 的回复:
Quote: 引用 4 楼 meixu568 的回复:

直接在服务器端下载不行吗?

服务器地址和本地地址不一样吗?我在本地可以,传到服务器就报错了。
D:\SendCar\Excel在服务器建了个excel文件夹放。要在d前面加ip地址还是什么

直接用服务器端代码下载就行了 http://www.cnblogs.com/lengzhan/p/6369500.html

#9


引用 8 楼 meixu568 的回复:
Quote: 引用 6 楼 happy4944 的回复:

Quote: 引用 4 楼 meixu568 的回复:

直接在服务器端下载不行吗?

服务器地址和本地地址不一样吗?我在本地可以,传到服务器就报错了。
D:\SendCar\Excel在服务器建了个excel文件夹放。要在d前面加ip地址还是什么

直接用服务器端代码下载就行了 http://www.cnblogs.com/lengzhan/p/6369500.html

报这个错      检索与CLSID { 46 } 00024500-0000-0000-c000- 0000000000组件的COM类工厂失败的原因如下:80070005访问被拒绝。(例外来自HRESULT: 0x80070005(e_accessdenied))。

#10


引用 7 楼 xdashewan 的回复:
Quote: 引用 5 楼 happy4944 的回复:

看用户勾选了哪些资料

客户端向服务器传参数吗?那和一般参数一样取有什么疑问呢

是一样呀。ajax取参传参方便些

#11


引用 3 楼 u010717459 的回复:
ajax不行 要么用iframe或者直接Response输出文件流 或者ajax返回文件地址浏览器打开就保存了

现在直接按钮触发,没用ajax了,也没传参