`

ruby解析execl的两种办法

阅读更多
如果你在windows下开发,可以使用WIN32OLE

下面是一段示例程序:
require 'win23ole' 

        application = WIN32OLE.new('Excel.Application') 
        worksheet 
=application.Workbooks.Open(excelFileName).Worksheets(workSheetName) 
        worksheet.Activate 

        contLoop = true           # Dummy counter for the loop 

        while contLoop do 
          colVal = worksheet.Cells(row, column).Value 

          if (colVal) then 
            # 如果这个字段非空,则表示这行有值
            # 在这里处理读取
            do processing .... 
          else 
            # 这里表明结束。
            # End the loop 
            contLoop = false 
          end 
          # go to the next Row 
          row +=  1 
        end 


        # we are done 
        application.Workbooks.Close 



还有一种方法是借助CSV,因为Ruby对CSV有良好的支持见下,出自Ruby官方文档
  CSV::Reader.parse(File.open('bigdata', 'rb')) do |row|
    p row
    break if !row[0].is_null && row[0].data == 'stop'
  end

写时:
  outfile = File.open('csvout', 'wb')
  CSV::Writer.generate(outfile) do |csv|
    csv << ['c1', nil, '', '"', "\r\n", 'c2']
    ...
  end

  outfile.close


所以,无论读还是写,都可以借助CVS实现。比如,想从程序导出一个excel文件,那么只要导出到CSV再转换成excel就可以啦
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics