ruby-on-rails - Rails 4 使用 send_data 方法下载的 excel 文件出现格式错误
问题描述
我正在使用如下所述的 send_data 方法在我的 Rails 4 应用程序中下载 excel 格式的数据。
send_data collection.to_csv(col_sep: "\t"),
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
filename: 'filename.xls'
我可以下载数据,但是在打开下载的 excel 文件时,我收到以下警告消息。
The file format and extension of 'file.xls' don't match. The file could be corrupted or unsafe.
Unless you trust its source, dont open it. D want to open it anyway?
即使是警告,也会在下载和打开文件时给客户造成混淆。任何人都有任何线索,它是什么以及如何解决?
任何帮助将不胜感激。
解决方案
您创建的不是 XLS 文件,而是 CSV 文件,因此您应该将文件名更改为'filename.csv'
. 它仍然可以在 Excel 中打开。
您可能还想将 MIME 类型更改为text/csv
.
可以在此处找到 Excel 文件的正确 MIME 。
推荐阅读
- python - 如何列出给定域中的唯一网址
- scripting - 替换为不同的段
- mongodb - 如何访问mongoDb中的数组数组
- ubuntu - 如何从 Ubuntu 命令(Alt + F2)打开 WPS 写入、演示和电子表格应用程序
- php - .htaccess 基于referrer的重定向
- machine-learning - 使用布尔公式的分类器
- java - ehcache3 - 为什么缓存不会过期?
- php - Codeigniter:文件上传在 localhost 上工作,但不在服务器上(JSON 输入意外结束)
- spring-boot - 如何从 @Async 带注释的方法中抛出异常
- javascript - Promise.all() 比对每个 Promise 都使用 await 慢?