測定データなどがExcelにまとめられているのを、csvファイルに分離するruby scriptです。Windows上で実行します。
下のソースをsplit-each-sheet.rb(例)として保存して、split-each-sheet.rb hoge.xls という風に実行します。私はたいていCygwin上のrubyで実行させています。
#!/usr/bin/env ruby # -*- coding: utf-8 -*- # require 'nkf' require 'win32ole' def getAbsolutePath filename fso = WIN32OLE.new('Scripting.FileSystemObject') return fso.GetAbsolutePathName(filename) end def read_xls(xls) filename = getAbsolutePath(xls) xl = WIN32OLE.new('Excel.Application') book = xl.Workbooks.Open(filename) begin book.Worksheets.each{|sheet| str = "" name = NKF.nkf("-w", sheet.name) puts csv_name = "#{name}.csv" sheet.UsedRange.Rows.each{ |row| record = [] row.Columns.each{ |cell| record << cell.Value } str += record.join(",") + "\n" } open(csv_name, "w"){|f| f.puts str} } ensure book.Close xl.Quit end end def main ARGV.each{ |xls| read_xls(xls) } end main