Đoạn code dưới đây làm việc như nó nên lần đầu tiên tôi chạy nó:Cách đóng tệp trong đá quý ruby "Bảng tính?"
require 'rubygems'
require 'spreadsheet'
book = Spreadsheet.open '/Users/me/myruby/Mywks.xls'
sheet = book.worksheet 0
row = sheet.row(1)
puts row[1]
book.write '/Users/me/myruby/Mywks.xls'
Khi tôi chạy nó một lần nữa tôi nhận được nhiều tin nhắn như:
/Library/Ruby/Gems/1.8/gems/spreadsheet-0.6.5.9/lib/spreadsheet/excel/reader.rb:1149:in `setup': undefined method `read' for false:FalseClass (NoMethodError)
from /Library/Ruby/Gems/1.8/gems/spreadsheet-0.6.5.9/lib/spreadsheet/excel/reader.rb:121:in `read'
này đề nghị với tôi có một vấn đề với hoặc: 1. Đóng bảng tính excel hoặc 2. Viết lại cho cùng bảng tính mà tôi đã mở.
- Không có gì trong tài liệu về bảng tính đá quý ruby về việc đóng bảng tính. Ví dụ kết thúc trong câu lệnh "book.write" như trên, nếu có. Tìm kiếm của tôi ở đây và ở nơi khác không có gì đóng lại tệp xls trong bảng tính.
- Tài liệu bảng tính đề xuất bạn CÓ THỂ ghi lại vào cùng một tệp nhưng cho thấy có thể bạn không nên. Đó có phải là vấn đề ở đây không? Nếu vậy tôi viết thư cho một wks tạm thời và sau đó đổi tên nó?
Dòng nào kích hoạt ngoại lệ? –
@AndrewGrimm Rõ ràng đó là dòng 3, bắt đầu "book = spreadsheet.open". – Roy
Tôi đã thử thêm mã bên dưới nhưng điều đó không hoạt động. Kết quả chính xác giống như trên. afile = File.open ("/ Users/royclymer/myruby/Weekly Total.xls") afile.close Tôi không thể tìm ra cách định dạng mã ở trên trong bình luận này. – Roy