Rails中的Spreadsheet.open给出了这个错误“未知的编码名称 - MACINTOSH”

时间:2013-04-01 09:12:16

标签: ruby-on-rails parsing spreadsheet xls

我正在使用Spreadsheet来解析xls文件。它工作得很好。但今天我的一个用户上传了一个文件,并收到错误“未知编码名称 - MACINTOSH”

我的代码是: book = Spreadsheet.open file_path sheet1 = book.worksheet 0

这是获取错误的excel文件: https://www.dropbox.com/s/jv37pk5rpiy9259/testlisttextnonames2.xls

请你帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

遇到同样的问题。这是我能推断的最好的:

“Macintosh”不是Ruby 1.9+中的已知编码。尝试打开控制台并运行“Encoding.find('Macintosh')”。你会得到同样的错误。

那么可用的是什么?在控制台中:“Encoding.list”。其中一个选项是MacRoman。我猜这是紧随其后的第二个。

因此,如果我们将lib / spreadsheet / excel / internals.rb中的映射更改为10000和32768以映射到“MACROMAN”,那么它应该可以工作。

在本地测试,确实如此。

我打开了拉取请求:https://github.com/zdavatz/spreadsheet/pull/51

一些参考链接:  * https://en.wikipedia.org/wiki/Mac_OS_Roman  * http://bugs.python.org/issue843590