【问题标题】:Ruby Spreadsheet: Bad file descriptor - test.xls (Errno::EBADF)Ruby 电子表格:错误的文件描述符 - test.xls (Errno::EBADF)
【发布时间】:2012-11-08 19:30:22
【问题描述】:

我对制作简单 .xls 文件并将数据写入一个单元格的脚本有疑问。这是简单的代码:

require 'spreadsheet'

class Filter
  def filter
    @excel = Spreadsheet::Workbook.new
    @sheet = @excel.create_worksheet

    @sheet[0, 0] = "test"
        @excel.write 'test.xls'
  end
end

f = Filter.new
f.filter

但它会引发错误:

C:/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-ole-1.2.11.5/lib/ole/storage/base.rb:62:in write_nonblock': Bad file descriptor - test.xls (Errno::EBADF) from C:/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-ole-1.2.11.5/lib/ole/storage/base.rb:62:in initialize'

    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-ole-1.2.11.5/lib/ole/storage/base.rb:78:in

new' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/ruby-ole-1.2.11.5/lib/ole/storage/base.rb:78:in open' 来自 C:/Ruby193/lib/ruby/gems/1.9.1/gems/spreadsheet-0.7.4/lib/spreadsheet/excel/writer/workbook.rb:4 53:在write_from_scratch' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/spreadsheet-0.7.4/lib/spreadsheet/excel/writer/workbook.rb:6 31:inwrite_workbook' 来自 C:/Ruby193/lib/ruby/gems/1.9.1/gems/spreadsheet-0.7.4/lib/spreadsheet/writer.rb:15:in block in write' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/spreadsheet-0.7.4/lib/spreadsheet/writer.rb:14:in open' 来自 C:/Ruby193/lib/ruby/gems/1.9.1/gems/spreadsheet-0.7.4/lib/spreadsheet/writer.rb:14:in write' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/spreadsheet-0.7.4/lib/spreadsheet/workbook.rb:116:in write'

    from filter.rb:10:in `filter'
    from filter.rb:15:in `<main>'

【问题讨论】:

    标签: ruby spreadsheet


    【解决方案1】:

    因为 ruby​​-ole 1.2.11.5 不支持 windows 平台, 更多详情:ruby-ole issue

    你可以使用 ruby​​-ole 1.2.11.4 来避免这个问题。

    require 'rubygems'
    gem 'ruby-ole','1.2.11.4'
    require 'spreadsheet'
    

    【讨论】:

      【解决方案2】:

      我以前见过这些。首先验证您是否可以写入该文件的位置。 我的猜测是文件已经在 Excel 中打开,或者您的防病毒软件正在阻止“威胁”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-20
        • 2010-09-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多