Excelにテキストファイルを読み込んでみた

事務手続きで定型書式がExcelで作られてるケースがあって
まぁ、たまには仕方ないかなぁと思いつつ開いたら
セルの結合が乱用されていることはもちろん、
よみがなの枠が一文字ずつセルが用意されてて唖然とした。
 
ということで、手抜きするために努力することにした。
 

import org.codehaus.groovy.scriptom.*;
import org.codehaus.groovy.scriptom.tlb.office.*;
import org.codehaus.groovy.scriptom.tlb.office.excel.*;

Scriptom.inApartment
{
  ea = new ActiveXObject("Excel.Application")

  wb = ea.workbooks.add()

  ea.DisplayAlerts = false

  wb.sheets(1).name = "方眼紙"
  wb.sheets(1).Columns("A:BZ").ColumnWidth = 2

  wb.sheets(2).name = "エクセルでも表が書けます"

  new File('text.txt').eachWithIndex { line,j ->
    line.eachWithIndex { chr,i ->
      wb.sheets(1).cells(j+1,i+1).Value = chr
      shape = wb.sheets(2).Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal,i*20,j*20,20,20)
      shape.TextFrame2.TextRange.Text = chr
    }
  }
  
  wb.saveAs(new File("text.xlsx").canonicalPath)
  wb.close
}

 
環境はGroovy 1.8.6 JVM 1.7.0_05 Windows 7 MS Office 2010
 
TextFrame2とかなんだよなぁ。
色々調べて一番役に立ったのがVBA相談掲示板的なところ。
VBAもバージョン依存激しいみたいね。

    • -

追伸
groovy 2.0.1でも動いた。