我需要使用查询读取带有 Ruby 的 Excel 工作表(.xls)值。红宝石中有没有可用的宝石来做到这一点?如果是这样,请帮助我。
任何关于此的提示或建议都会很棒。
谢谢安托
您可以使用 Sequel 和 OLEDB 读取 Excel 文件:
require 'sequel'
Encoding.default_external = 'utf-8' #needed for umlauts in excel
def read_excel(source)
source = File.expand_path(source) #Full path needed
db = Sequel.ado(:conn_string=>"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=#{source};Extended Properties=Excel 8.0;")
# Excel 2000 (for table names, use a dollar after the sheet name, e.g. Sheet1$)
p db.test_connection
dataset = db[:'Tabelle1$']
p dataset
dataset.each{|row|
puts row
}
end #test_read
read_excel('my_spreadsheet.xls')
您应该知道选项卡的名称(在我的示例中为Tabelle1)
这里的“真正”解决方案不是 Sequel,而是 ADO 接口。我不熟悉其他 ORM,所以我可能无法真正帮助您。但是您可以检查例如活动记录。
有提示,如何通过 ADO连接MS-Access或sqlserver ,有些使用ActiveRecord。如果在我的 Sequel 示例中将连接字符串替换为 Excel 字符串,则可以使用其他 ORM。
您也可以尝试通过 ODBC 连接读取 Excel 数据。
spreadsheet
使用gem从excel文件中读取数据
require 'spreadsheet'
doc = Spreadsheet.open('simple.xls')
sheet = doc.worksheet(0) # list number, first list is 0 and so on...
val = sheet2[r,c] # read particular cell from list 0, r for row, c for column
那里有一些信息。
网络上的更多信息,只需使用谷歌。