的父目錄我有簡單的腳本,應該閱讀Excel和打印兩個單元:紅寶石獲得當前文件
require 'rubygems'
gem 'ruby-ole','1.2.11.4'
require 'spreadsheet'
class Filter
# Gets zipcode range
def get_zipcode_range
wb = Spreadsheet.open "../data/zipcode_range.xls"
sheet = wb.worksheet 0
[sheet.cell(0, 0), sheet.cell(0, 1)]
end
end
f = Filter.new
puts f.get_zipcode_range
文件結構如下:
FilterExcel
data
zipcode_range.xls
lib
filter.rb
當我打開命令提示符,然後去到FilterExcel \ lib和運行:
ruby filter.rb
它提供了預期的輸出:
3911AW
3911ZZ
但是,當我從項目的根文件夾運行腳本,FilterExcel,那麼它會引發錯誤:
C:\Documents and Settings\Erik\FilterExcel>ruby lib\filter.rb C:/Ruby193/lib/ruby/gems/1.9.1/gems/spreadsheet-0.7.4/lib/spreadsheet.rb:68:in 'initialize': No such file or directory - ../data/zipcode_range.xls (Errno::ENOENT) from C:/Ruby193/lib/ruby/gems/1.9.1/gems/spreadsheet-0.7.4/lib/spreadsheet.rb:68:in 'open' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/spreadsheet-0.7.4/lib/spreadsheet.rb:68:in 'open' from lib/filter.rb:56:in 'get_zipcode_range' from lib/filter.rb:63:in ''
附:如果有問題,我使用Windows XP。
正如我寫的那樣,所謂的文件(filter.rb)不在數據目錄中,而是在lib目錄中。 '放置File.expand_path(「../ data/zipcode_range.xls」,__FILE __)',給出:'C:/ Documents and Settings/Erik/FilterExcel/lib/data/zipcode_range.xls'這是意想不到的結果。但'放入File.expand_path(「../../ data/zipcode_range.xls」,__FILE __)'會給出正確的輸出:'C:/ Documents and Settings/Erik/FilterExcel/data/zipcode_range.xls'。 –