2013-04-01 23 views
3

我正在使用Spreadsheet來分析xls文件。它運作良好。但我的用戶今天的用戶上傳了一個文件,它得到一個錯誤「未知的編碼名稱 - MACINTOSH」Spreadsheet.open在Rails中給出了這個錯誤「unknown encoding name - MACINTOSH」

我的代碼是: 書= Spreadsheet.open FILE_PATH 工作表Sheet1 = book.worksheet 0

這是出現錯誤的Excel文件: https://www.dropbox.com/s/jv37pk5rpiy9259/testlisttextnonames2.xls

你們可以幫我解決這個問題嗎?

+0

我得到一個簡單的Ruby腳本同樣的錯誤,發現在谷歌這個問題。希望有人可以回答。 – sergserg

回答

0

遇到同樣的問題。這裏是我可以推出的最好的:

「Macintosh」在Ruby 1.9+中不是已知的編碼。嘗試打開控制檯並運行「Encoding.find('Macintosh')」。你會得到同樣的錯誤。

那麼有什麼可用的?在控制檯中:「Encoding.list」。其中一個選項是MacRoman。我猜這是第二次。

因此,如果我們更改映射到「MACROMAN」的lib/spreadsheet/excel/internals.rb中10000和32768的映射,它應該可以工作。

本地測試,它確實。

我打開一拉請求:https://github.com/zdavatz/spreadsheet/pull/51

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