在Ruby Spreadsheet gem中获取null值

我试图把一个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呢? 有没有更好的方法来做到这一点? 我试图search,但找不到任何东西。

这里有一个更多的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来代替它。