首页 > 解决方案 > 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?

即使是警告,也会在下载和打开文件时给客户造成混淆。任何人都有任何线索,它是什么以及如何解决?

任何帮助将不胜感激。

标签: ruby-on-railsexcelrubyxls

解决方案


您创建的不是 XLS 文件,而是 CSV 文件,因此您应该将文件名更改为'filename.csv'. 它仍然可以在 Excel 中打开。

您可能还想将 MIME 类型更改为text/csv.

可以在此处找到 Excel 文件的正确 MIME 。


推荐阅读