0

我需要使用查询读取带有 Ruby 的 Excel 工作表(.xls)值。红宝石中有没有可用的宝石来做到这一点?如果是这样,请帮助我。

任何关于此的提示或建议都会很棒。

谢谢安托

4

2 回答 2

1

您可以使用 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-Accesssqlserver ,有些使用ActiveRecord。如果在我的 Sequel 示例中将连接字符串替换为 Excel 字符串,则可以使用其他 ORM。

您也可以尝试通过 ODBC 连接读取 Excel 数据。

于 2013-03-25T11:19:05.700 回答
0

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 

那里有一些信息
网络上的更多信息,只需使用谷歌。

于 2013-03-25T12:07:59.333 回答