使用gem "axlsx"和"axlsx_rails"可以很方便地从Rails 4应用程序中使用AJAX调用下载xlsx文件。以下是一种可能的解决方案:
gem 'axlsx'
gem 'axlsx_rails'
bundle install
命令安装这两个gem。def download_xlsx
respond_to do |format|
format.xlsx do
# 创建一个Workbook对象
p = Axlsx::Package.new
wb = p.workbook
# 添加工作表
wb.add_worksheet(name: "Sheet1") do |sheet|
# 在工作表中添加数据
sheet.add_row ["Column1", "Column2", "Column3"]
sheet.add_row ["Data1", "Data2", "Data3"]
end
# 发送生成的xlsx文件给前端
send_data p.to_stream.read, filename: 'data.xlsx', disposition: 'attachment'
end
end
end
get 'download_xlsx', to: 'your_controller#download_xlsx'
<%= button_to 'Download XLSX', download_xlsx_path, remote: true, class: 'btn btn-primary' %>
window.location.href = '<%= download_xlsx_path %>';
现在,当用户点击下载XLSX按钮时,将会使用AJAX调用download_xlsx action,并且浏览器将会自动下载生成的xlsx文件。
这是一个基本的示例,您可以根据实际需要进行修改和定制。此外,您可以在Tencent云中使用各种产品来支持您的Rails应用程序,例如:
请注意,以上链接仅供参考,具体选择和配置取决于您的需求和偏好。
领取专属 10元无门槛券
手把手带您无忧上云