我正在尝试将图像添加到Excel中。我可以在调用方法res_data时发送不同的图像。但执行后我看到最后一张图像会覆盖以前拍摄的所有图像。
这是我的代码。请在红宝石中使用axlsx gem帮助.am
class abc
@@row=1
@@f = File.open('result.xlsx', 'w+')
@@p = Axlsx::Package.new
@@ws = @@p.workbook.add_worksheet
@@ws.name="result"
def res_data(path)
@@ws.add_image(:image_src => path, :noSelect => true, :noMove => true) do |image|
image.width=1366
image.height=768
image.start_at 0, @@row
end
@@row=@@row+42
@@p.serialize(@@f)
end
end
将方法调用为(使用capybara方法)
要求' axlsx'
obj = abc.new
路径=' C:\测试\ image_file.png'
访问" http://google.com
save_screenshot(path,:full => true)#抓取google主页截图
obj.res_data(路径)
click_button" btnI"
save_screenshot(path,:full => true)#clicks"我感到很幸运"并再次捕获屏幕截图
obj.res_data(路径)
我能够看到' c:\ test \ image_file.png'使用新图像更新文件(调用保存屏幕截图时) 但是当我看到' result_xlsx"文件,它只显示所有图像中的最后一张图像。