在Ruby Spreadsheet gem中获取null值

时间:2015-05-21 20:09:50

标签: ruby excel spreadsheet

我试图获取一个excel文件并将其放入Postgres。我可以访问该文件并从中读取行。

require 'spreadsheet'
Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet.open 'C:\test\RubyTestFile.xls'
sheet1 = book.worksheet 0
$test_array = []
sheet1.each do |row|
    $test_array += row
end
print $test_array

我的问题是它不会读取空值。是否有方法可以抓住每行3列?我上传到postgres时应该处理这个吗?有没有更好的方法呢?我试着搜索但却找不到任何东西。

1 个答案:

答案 0 :(得分:1)

这是一个稍微多一点的Ruby解释:

require 'spreadsheet'

Spreadsheet.client_encoding = 'UTF-8'

def read_spreadsheet(path)
  book = Spreadsheet.open(path)
  sheet1 = book.worksheet 0

  test_array = [ ]

  sheet1.each do |row|
    test_array << (row + [ nil ] * 3).first(3)
  end

  test_array
end

puts read_spreadsheet('C:\test\RubyTestFile.xls').inspect

如果您希望在那里使用文字'null',则可以将其替换为数组中的nil