首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails - axlsx_rails,生成xlsx并通过API发送

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

Stack Overflow用户
提问于 2018-10-15 20:34:27
回答 3查看 2K关注 0票数 0

通过API向前端发送xlsx文件的最佳方法是什么?我使用轴突 gem生成带有xlsx模板的报表。

我找到的选项有:jsonbase64、html。

生成.xlsx文件并以json/html的形式响应文件名

现在呈现xlsx:

代码语言:javascript
复制
 render xlsx: 'status_report', template: 'api/v1/report/status_report.xlsx.axlsx'
EN

回答 3

Stack Overflow用户

发布于 2018-12-20 15:32:20

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

代码语言:javascript
复制
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方法(数据)

票数 1
EN

Stack Overflow用户

发布于 2022-03-14 12:12:04

您可以这样使用send_file

代码语言:javascript
复制
def export
    Axlsx::Package.new do |obj|  
          obj.workbook.add_worksheet(name: 'worksheet name') do |sheet|
            # Sheet structure and rows...   
          end
        obj.serialize('filename.xlsx')
        send_file File.open('filename.xlsx')
    end
end

不要忘记将rubyzipaxlsxaxlsx_rails宝石添加到gemfile中。

票数 0
EN

Stack Overflow用户

发布于 2019-07-30 18:48:21

您应该在application_controller ActionController::API中更改为ActionController::Base

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52824397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档