Ruby 如何在每个单元格中填充颜色
我正在使用Roo和RubyXL修改Excel电子表格 当我注释掉Excel工作表中填充颜色的代码时,我没有得到任何错误 我的完整代码:Ruby 如何在每个单元格中填充颜色,ruby,excel,roo-gem,rubyxl,Ruby,Excel,Roo Gem,Rubyxl,我正在使用Roo和RubyXL修改Excel电子表格 当我注释掉Excel工作表中填充颜色的代码时,我没有得到任何错误 我的完整代码: require 'rubyXL' require 'roo' workbook = Roo::Spreadsheet.open(file_name) workbook1 = RubyXL::Parser.parse(file_name) workbook.default_sheet = 'Location Table Values' worksheet1 =
require 'rubyXL'
require 'roo'
workbook = Roo::Spreadsheet.open(file_name)
workbook1 = RubyXL::Parser.parse(file_name)
workbook.default_sheet = 'Location Table Values'
worksheet1 = workbook1['Location Table Values']
for j in (workbook.first_row..workbook.last_row)
print "\n"
d = j
for k in (workbook.first_column..workbook.last_column)
if (k == workbook.first_column)
choose("lookupSearch", :option => "Plan")
fill_in "searchInput", :with => workbook.cell(j, k)
find(:xpath, '//*[@id="searchicon"]').click
elsif (k == workbook.last_column)
puts " "
else
print k
findXpath = page.find('td', text: workbook.cell(j,k), :match => :prefer_exact).path
splitXpath = (findXpath.split("/"))
count = splitXpath.count
value = splitXpath.at(count - 1)
if (value == "td[1]")
finalElementXpath = findXpath.sub("td[1]", "td[2]")
elsif (value == "td[2]")
finalElementXpath= findXpath.sub("td[2]", "td[3]")
end
if (workbook.cell(j, k + 1)) == (find(:xpath, finalElementXpath).native.text)
print "#{workbook.cell(j + 1, k)}-value exist \n"
worksheet1.sheet_data[d][k].change_fill ('008000') # Green color
else
print "object #{workbook.cell(j, k + 1)}not exist #{workbook.cell(j, k)}"
print workbook.cell(j, k + 1)
worksheet1.sheet_data[d][k].change_fill ('ff0000')
end
end
end
end
workbook1.write(file_name)
但是我得到了Nil[]Nil类错误。
capybara
不是用于此的合适工具。请查看axlsx
gem或用于与电子表格交互的工具<代码>电子表格,roo
,等等。基本上我用的是水豚。但是为了访问excel,我使用了“roo”和“rubyXL”gem。你能帮我解决这个问题吗?你的代码在语法上是无效的。我知道你的开始括号比结束括号多。我删除了对Capybara的引用,因为你没有显示任何Capybara代码或表明你的问题与Capybara有关,并添加了[roo gem]和[rubyxl]标记。我编辑了我的代码并放置了整个代码。希望这会有所帮助。请告诉我该换什么