事務手続きで定型書式が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でも動いた。