ajax提交json数据返回文件流下载excell

31 篇文章 0 订阅
ajax异步无法返回下载文件
可以通过添加from表单隐藏域的方式实现。
另外也想过直接js调用excell插件来生成文件学艺不精放弃了。
[b]Require:[/b]

$(".feedback.button").click(function(){
var form = $("<form>");
form.attr('style', 'display:none');
form.attr('target', '');
form.attr('method', 'post');
form.attr('action', '<%= download_feedback_crm_products_path%>');

var input1 = $('<input>');
input1.attr('type', 'hidden');
input1.attr('name', 'item');
input1.attr('value', "<%= CGI.escape(@result[:data].to_json) %>");

$('body').append(form);
form.append(input1);

form.submit();
form.remove();
});


[b]Action:[/b]

# 下载sku 反馈信息
def download_feedback
result = CGI.unescape(params[:item])
data = JSON.parse(result)
file = Spreadsheet::Workbook.new
list = file.create_worksheet :name => "test"
list.row(0).concat ["CAS No.", "Product Name", "Assay/Purity", "In Stock (yes/no)", "Note","Result"]
data.each_with_index { |report, i|
list.row(i+1).concat report.values
}
xls_report = StringIO.new
file.write xls_report
send_data xls_report.string, :type => 'text/xls', :filename => "wait_shipments.xls"
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值