首页 > 解决方案 > Rails - axlsx_rails,生成 xlsx 并通过 API 发送

问题描述

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

我找到的选项是:json,,base64html。

生成 .xlsx 文件并将文件名响应为 json/html


现在渲染 xlsx:

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

标签: ruby-on-railsapiaxlsx

解决方案


我知道这是一个老问题,但我选择了 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_datarails 方法(send_data


推荐阅读