尝试使用Ruby Sinatra和AXLSX gem提示下载窗口并流式传输XLSX文件时,我的excel文件已成功序列化为本地文件,因此我知道它是有效的excel文档,但是我需要它才能将内容传输到最后用户。网上没有任何文档可以将AXLS和Sinatra的示例一起使用,只有rails。感谢您的帮助!
class Downloads < Sinatra::Base
get '/downloads/report' do
## ...
Axlsx::Package.new do |p|
p.workbook.add_worksheet(name: 'tab name') do |sheet|
## ...
end
content_type 'application/xlsx'
attachment 'cost-code-dashboard.xlsx'
p.to_stream # unsuccessful
# p.to_stream.read # unsuccessful as well
end
end
end
我也没有成功尝试以下代码段
Axlsx::Package.new do |p|
## ...
send_file p.to_stream.read, type: "application/xlsx", filename: "cost-code-dashboard.xlsx"
end
答案 0 :(得分:1)
问题似乎与setuid(.)
的调用方式有关,辅助功能在Axlsx中不可用,以下解决方案有效-在线文档说,下面的content_type更好
Axlsx::Package.new