在 Ruby 电子表格 gem 中获取空值
Get null values in Ruby Spreadsheet gem
我正在尝试获取一个 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 时处理这个问题吗?有更好的方法吗?我尝试搜索但找不到任何内容。
这里稍微多一点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
。
我正在尝试获取一个 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 时处理这个问题吗?有更好的方法吗?我尝试搜索但找不到任何内容。
这里稍微多一点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
。