shijiang1130 发表于 2011-08-25 13:47

批量转换excel成csv格式

本帖最后由 shijiang1130 于 2011-08-25 13:49 编辑

require 'win32ole'

module E2csv
def E2csv.firecsv(p)
    excel = WIN32OLE.new('Excel.Application')
    excel.visible = false
    excel.DisplayAlerts = false
    xlCSV = 6
    book = excel.Workbooks.Open(p)
    sheetnum = book.Worksheets.Count
    p = File.basename(p , ".xls")
      while sheetnum > 0 do
      worksheet = book.WorkSheets(sheetnum)
      filename = "c:\\test\\" + p + "_" + sheetnum.to_s + '.csv'
      worksheet.SaveAs(filename,xlCSV)
      sheetnum = sheetnum - 1
    end
excel.ActiveWorkbook.Close
excel.Quit()
end
end

mydir = ARGV
d = Dir.open(mydir)
for f in d
   case f
   when /^\./
   else
            file = mydir + '\\' + f
            E2csv.firecsv(file)
   end
end

OS: windows xp sp3
Ruby: 1.9.2.p0

ruby els2csv.rb c:\test

shijiang1130 发表于 2011-08-25 13:53

xlCSV=6
xlCSVMac=22
xlCSVMSDOS=24
xlCSVWindows=23
xlCurrentPlatformText=-4158
xlExcel9795=43
xlTextMSDOS=21
xlTextPrinter=36
xlTextWindows=20

2gua 发表于 2011-08-26 12:36

不错,以资鼓励。
页: [1]
查看完整版本: 批量转换excel成csv格式