I’m working on a rails app for a small shop. It needs to load an .xls file, parse it and maybe load to the database.
I use Spreadsheet gem to work with the file.
The problem is that the file contains russian characters which are displayed as “└ÛÛ.ExT H-1727F (ÓÝÓÙ¯Ò GP T304)”
The reference says, I need to specify the encoding, but I don’t know which one is used in this file. I tried “win-1251” but it gave me an error about being unable to find a “utf-8 to win-1251 converter”
I’ve setting encoding to “WINDOWS-1251” but it gave me this error:
U+00BE to WINDOWS-1251 in conversion from CP850 to UTF-8 to WINDOWS-1251
So then I’ve tried CP850, which didn’t throw an error, but the characters were still not readable.
There’s not much code really.
# -*- encoding : utf-8 -*-
...
def show
require 'spreadsheet'
Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet.open 'c:\rails\renergy23\public\price-16-04-11.xls'
@sheet = book.worksheet 0
end
For simpicity I don’t load it to the database right now. Instead I output it in my view:
- 30.times do |i|
= @sheet.row i+10
%br
I kinda solved this after 1.5 months by first saving the document in .xlsx and then saving it in .xls (97-2003). I couldn’t use the .xlsx because of some weird
OLE signature incorrecterror.