Excelを使い倒す。


キーストン ホーム

前に戻る
昨今の企業では、データ管理としては、Excelを使うのがディファクトスタンダードとなっている。
しかしながら、冒頭で書いたような複雑怪奇なシステムをExcelのみで行うのは不可能に近い。
そこで、Excelを、データベースへの登録を行うための、一つのユーザインターフェースとして利用するととっても便利である。
例えば、Excelで商品一覧シートを作った後、以下のモジュールを使って、データベースエンジンへの登録を行う。

以下は、ruby でも jruby でも動作するが、今後、オープンソースのオブジェクト指向データベースを利用予定なので、
jrubyの方が良いかもしれません。つまりデータベース部分へのアクセスはjavaで記述します。

require 'rubygems'
require 'parseexcel'
require 'kconv'
require 'java'

class Kexcel
	@@encode_excel="Shift_JIS"
	@@encode_ruby="UTF-8"
	
	def Kexcel.read(aFilePath, aSheetName)
		wWorkbook=Spreadsheet::ParseExcel.parse(aFilePath)

		wWorksheet=wWorkbook.worksheet(aSheetName, @@encode_excel)

		wRowIndex=0
		wTitleRow=nil
		wMethodRow=nil
		wWorksheet.each do |iRow|
		  wRecordRow=[] unless wRecordRow
		  iRow.each do |iCell|
		    if iCell
		      wRecordRow.push iCell.to_s(@@encode_ruby)
		    end
		  end
		  if wRowIndex == 0
		  	wTitleRow=wRecordRow
			  wRowIndex+=1
		  	next
		  elsif wRowIndex==1
		  	wMethodRow=wRecordRow
			  wRowIndex+=1
		  	next
		  else
			  wRowIndex+=1
			end
		  yield wRecordRow, wTitleRow, wMethodRow, wRowIndex
		end
	end
end



前に戻る