Rails-axlsx_rails,生成xlsx并通过API发送

时间:2018-10-15 20:34:28

标签: ruby-on-rails api axlsx

通过API将xlsx文件发送到前端的最佳方法是什么? 我正在使用 axlsx_rails gem 通过 xlsx 模板生成报告。

我找到的选项是:jsonbase64,html。

Generate .xlsx file and respond filename as json/html


立即渲染xlsx:

 render xlsx: 'status_report', template: 'api/v1/report/status_report.xlsx.axlsx'

2 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但是我选择了base64选项。

Axlsx::Package.new do |obj|
    obj.workbook.add_worksheet(name: "Sheet Name") do |sheet|
        # Sheet structure and rows...
    end
    send_data Base64.encode64(obj.to_stream.read), type: "application/xlsx", filename: 'filename.xlsx'
end

只需使用send_data rails方法(send_data

答案 1 :(得分:0)

您应将application_controller ActionController::API更改为ActionController::Base