ruby excel的简单操作

2015-05-26  本文已影响729人  kamionayuki
#encoding:utf-8
require 'win32ole'

PATH = "C:\\Users\\Administrator\\Desktop\\"
file_name = "123.xls"
file_path = PATH+file_name
default_datalist = Array.new(4){|x| Array.new(4){|y| "dfadsf"}}

#写入数据,datalist必须是二维数组
def writeData(worksheet,datalist)
    datalist.each_with_index do |data, i|
        for j in 0..data.size-1
            j == 0 ? temp = worksheet.Range("a#{i+1}") : temp = temp.next  #next方法是定位到右边的第一个单元格
            temp.value = data[j]
        end
    end
end

#读取数据
def readData(worksheet,*args)
    if args.empty?
        cells = worksheet.UsedRange.Rows.value #UsedRange.Rows是取所有的单元格
    else
        cells = worksheet.Range(args[0], args[1]).value
    end
    # cells.each {|cell| cell.each_with_index {|c,i| cell[i] = 0 if c == nil}} #将nil值用0代替
    cells.each {|cell| p cell}
    # p cells
end

begin
    excel = WIN32OLE::new('Excel.Application')
    excel.WorkBooks.Open(file_path)
    worksheet = excel.ActiveWorkbook.WorkSheets(1)
    #写入数据
    datalist = default_datalist
    writeData(worksheet, datalist)
    #读取数据
    readData(worksheet)
    # p worksheet.Range("a1").next.value
    excel.Quit()
rescue Exception => e
    puts $!
    puts $@
    excel.Quit()
end
上一篇下一篇

猜你喜欢

热点阅读