`

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

阅读更多
ajax异步无法返回下载文件
可以通过添加from表单隐藏域的方式实现。
另外也想过直接js调用excell插件来生成文件学艺不精放弃了。
Require:
$(".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();
});


Action:
 # 下载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
1
分享到:
评论

相关推荐

    java导入导出全部文件jar包,ajax提交form表单返回提示数据

    总结来说,这个主题涵盖了Java的文件I/O,jar包操作,Excel文件的处理(如使用Apache POI),前端Ajax提交表单,以及后端接收并处理请求。理解这些知识点对于开发涉及数据导入导出和前后端交互的Java应用至关重要。...

    SpringMVCAjax_UpDown_Excel

    在上传过程中,前端通常会通过HTML表单或者利用Ajax提交文件到服务器,服务器端的Controller接收文件流,存储在服务器上,并返回一个标识文件的唯一ID。在下载时,Controller根据这个ID找到对应的文件,设置响应头以...

    原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)

    本篇内容将探讨如何原生JavaScript封装ajax方法,以支持不同类型数据(包括JSON、字符串和Excel文件)的上传和提交。 ###ajax基础 ajax技术允许网页在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页...

    ajax_struts2_上传与下载_无刷新

    2. 采用jquery.form.js实现ajaxForm提交表单或上传文件到服务器。 3. 在struts2的Action通过2种不同的实现方法返回json格式的字符串。 4. 针对商品实现简单无刷新上传与下载 4. 批量导入数据采用的是导入test文件夹...

    前端开源库-tabletojson

    在数据分析应用中,可以利用JSON数据进行过滤、排序或计算。对于动态生成的表格,`tabletojson`还能帮助用户导出数据,提供CSV或Excel格式的下载选项。 `tabletojson`库的另一个优点是其可扩展性。它允许开发者...

    jquery导出Excel.rar

    在jQuery的Ajax请求中,我们可以通过dataType: 'blob'来处理二进制流数据,然后创建一个Blob对象,最后利用URL.createObjectURL()生成一个临时的URL,创建一个隐藏的a标签,设置其href属性为这个URL,模拟点击下载。...

    使用jquery的上传插件:ajaxfileupload.js实现excel文件上传

    `dataType`指定了预期的服务器响应类型,这里设置为`'json'`,意味着服务器应返回JSON格式的数据。`success`和`error`回调函数分别处理文件上传成功或失败的情况。 服务器端(例如PHP)需要接收并处理上传的文件。...

    ajax 基础(入门学习者)

    通过Ajax,我们可以向服务器发送请求,处理数据变化,然后将更新后的表格数据返回给前端,用DOM更新表格。 #### 示例代码: ```javascript // 创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); // 设置...

    ExtJS poi 导入excel

    1. **文件上传**:在ExtJS的前端,创建一个文件上传组件,用户选择Excel文件后,通过Ajax提交到服务器。 2. **接收入口**:后端服务器接收到文件,将其保存到临时目录或者内存中。 3. **读取数据**:使用Apache POI...

    ajax +access 留言板

    Ajax的核心在于通过JavaScript向服务器发送异步请求,获取或更新数据,然后在客户端更新DOM(文档对象模型)以改变网页内容。这避免了传统方式下因页面刷新导致的用户体验中断。在本案例中,Ajax技术被用来实现实时...

    springboot+java+jsp实现解析excel表中的内容

    在JSP页面上,我们可以使用HTML5的`&lt;input type="file"&gt;`标签来创建一个文件选择器,并通过AJAX或者传统表单提交方式将文件上传到后端。解析后的结果可以展示在另一个JSP页面上,或者直接在当前页面以JSON格式显示。...

    接口文档模板.docx

    接口文档在软件开发中起着至关重要的作用,它定义了不同系统或组件之间的通信规则,确保数据能够准确、高效地传递。以下是一个详尽的接口文档模板及其关键知识点的解析: 1. **接口文档的基本结构** - **接口名称*...

    前端导出xlsx文件展示到页面-master.zip

    在前端开发中,有时我们需要将数据导出为Excel(xlsx)文件,以便用户可以下载、存储或进一步处理。"前端导出xlsx文件展示到页面-master.zip" 是一个项目,它展示了如何在JavaScript环境中实现这个功能。这个项目的...

    import.zip

    3. 数据转换:将二进制数据转换为可以被解析的格式,如CSV或JSON,这通常需要用到第三方库,如`xlsx`库,它能处理Excel文件的各种格式。 4. 提交数据:将转换后的数据通过Ajax发送到服务器端,通常是POST请求,携带...

    java文件导入js和jar

    在Java编程中,将Excel数据导入到程序中通常涉及到文件操作、数据解析和可能的Web交互。本主题主要关注如何使用JavaScript(通过`ajaxfileupload.js`)在前端处理文件上传,以及在后端利用Java的`poi.jar`库解析...

    教你怎么用程序代码开发Excel功能,搞定办公室小姐姐

    当用户提交数据时,前端发送Ajax请求,后端接收到请求后进行数据处理,然后返回结果。 6. **样式与布局**: `css`文件用于定义Handsontable的样式和布局。可以通过修改或扩展Handsontable默认的CSS类来调整表格的...

    .NET webapi实现文件上传功能

    1. **视图(View)**:在MVC的HTML视图中,我们可以使用HTML表单元素来创建文件选择控件,并通过AJAX提交文件。 ```html 上传 ``` 2. **脚本(Script)**:使用jQuery或其他JavaScript库,监听按钮点击...

    一个网页自动查询的工具

    这个工具的主要功能是读取Excel文件中的数据,并自动填充到网页查询表单中,从而自动化查询过程,减少手动输入的工作量。下面将详细介绍这个工具涉及的相关知识点。 一、Excel数据处理 1. 数据读取:工具首先需要...

    文件上传的两种情况及mock时对应处理办法

    只需配置JSON数据,就能实现文件上传的模拟响应。 三、示例代码: 在提供的文件列表中,`uploader.js`、`uploader_old.js`和`demo.js`可能包含与文件上传相关的代码。例如,`uploader.js`可能是新的文件上传组件,...

Global site tag (gtag.js) - Google Analytics