ruby の spreadsheet ライブラリで tsv ファイルを xls ファイルに変換する方法です。
ちなみに、xls ファイルの出力を標準出力にしようとしましたが、Spreadsheet::Workbook#write の引数に STDOUT を指定するとエラーになってしまいました。
#!/usr/local/bin/ruby
#
# usage: tsv_to_xls.rb {xls}
#
$KCODE = 'u'
require 'jcode'
require 'rubygems'
require 'spreadsheet'
# 出力先
xls_file = ARGV[0]
# sheet
book = Spreadsheet::Workbook.new
sheet = book.create_worksheet
# tsv 読み込み
STDIN.each_with_index do |line, r|
a = line.chomp.split("\t")
a.each_with_index do |value, c|
sheet[r, c] = value
end
end
# 出力
book.write(xls_file)
ちなみに、xls ファイルの出力を標準出力にしようとしましたが、Spreadsheet::Workbook#write の引数に STDOUT を指定するとエラーになってしまいました。
#!/usr/local/bin/ruby
#
# usage: tsv_to_xls.rb {xls}
#
$KCODE = 'u'
require 'jcode'
require 'rubygems'
require 'spreadsheet'
# 出力先
xls_file = ARGV[0]
# sheet
book = Spreadsheet::Workbook.new
sheet = book.create_worksheet
# tsv 読み込み
STDIN.each_with_index do |line, r|
a = line.chomp.split("\t")
a.each_with_index do |value, c|
sheet[r, c] = value
end
end
# 出力
book.write(xls_file)