2012-07-11 112 views
0

嗨,我试图将spreadhseet中的单元格值与字符串进行比较,如下所示。将电子表格单元格值与ruby中的字符串进行比较

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?和其他所有可能的字符串比较技术,但即使两个字符串是相同的它总是会导致假。你能帮我吗?

在此先感谢

回答

0

小区对象有许多子对象和方法。值 (读取/写入)方法返回一个单元值,因为它存储在内部。 单元格的文本(只读)方法会返回当前显示的 的值。例如,如果单元格的值是“1234.56789”格式化 作为货币的价值和文本方式返回不同的值

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) 
+0

我尝试同样的,但我得到“未定义的方法'文本”为#<电子表格:: ParseExcel的工作表:: ::手机:0x101176108>(NoMethodError)”当我尝试用worksheet.cell( x,y),如果我尝试使用worksheet.Cells(x,y)或者worksheet.Cell(x,y),它会被吊死。你可以帮我吗??? – MobileAutomator 2012-07-11 09:37:49

+0

工作:)谢谢你:) – MobileAutomator 2012-07-17 13:53:15

相关问题