0

嗨,我正在尝试将 spreadhseet 中的单元格值与下面给出的字符串进行比较。

workbook = Spreadsheet::ParseExcel.parse(name)

#Get the first worksheet
worksheet = workbook.worksheet(0)
puts worksheet.cell(4,0).to_s 
puts "SecurityKey".to_s
puts "SecurityKey".to_s.eql? worksheet.cell(4,0).to_s

我尝试了==,.eq?和所有其他可能的字符串比较技术,但即使两个字符串相同,它也总是结果为假。你能帮帮我吗?

提前致谢

4

1 回答 1

0

一个单元对象有许多子对象和方法。Value(读/写)方法返回 Cell 内部存储的值。单元格的 Text(只读)方法返回当前显示的值。例如,如果单元格的值“1234.56789”格式化为货币,则 Value 和 Text 方法返回不同的值

http://rubyonwindows.blogspot.com/2007/04/automating-excel-with-ruby-rows-columns.html

尝试使用值或文本

worksheet.Cells(4, 0).Value == "SecurityKey"
worksheet.Cells(4, 0).Text == "SecurityKey"

编辑

避免使用 parseexcel。尝试类似的东西

require 'spreadsheet'

Spreadsheet.client_encoding = 'UTF-8'
workbook = Spreadsheet.open '/path/to/file.xls'
first_sheet = workbook.worksheet 0 # or name
cell = first_sheet.row(1).at(4)
于 2012-07-11T07:45:04.290 回答