2008/08/04

groovyでExcelファイルに画像ファイルを貼り付ける

仕事で、 テストのエビデンスとしてとったjpgファイルをすべて エクセルに貼り付けて提出してほしいと言われた。

僕はindex.htmlにjpgをimgタグで挟み込んで エビデンスとして残しておこうと思ったんだけれど、 それではまずいとのこと。

(どこの企業でも、Excelによるテスト結果の保存が好きですね)

そこで作ったのが以下のスクリプト。 windows installerを使用してGroovyをインストールすると、 scriptomもインストールされます。 scriptomを使用することでgroovyからcomを操作することが可能になります。

import org.codehaus.groovy.scriptom.*
import org.codehaus.groovy.scriptom.tlb.office.MsoAutomationSecurity
import org.codehaus.groovy.scriptom.tlb.office.MsoFeatureInstall
import org.codehaus.groovy.scriptom.tlb.office2003.excel.*

Scriptom.inApartment
{

   
def dir = new File(System.properties["user.home"] + "/デスクトップ")
   
   
// おまじない
   
def xlApp = new ActiveXObject('Excel.Application')
   
xlApp.visible = false
   
xlApp.displayAlerts = false
   
xlApp.automationSecurity = MsoAutomationSecurity.msoAutomationSecurityForceDisable
    xlApp.alertBeforeOverwriting =
false
   
xlApp.askToUpdateLinks = false;
    xlApp.featureInstall = MsoFeatureInstall.msoFeatureInstallNone

   
// 新規ワークブック作成
   
def workbook = xlApp.workbooks.Add()
   
def worksheet = workbook.sheets(1)

   
worksheet.name = "新しいシート"
   
dir.listFiles().findAll{ it.name.endsWith(".jpg") }.sort().each{ image ->
        def picture = worksheet.pictures.insert
(image.path)
       
/*
         * pictureオブジェクトに対して、top、left、width、heightを
         * 指定することが可能。
         */
   
}

   
workbook.SaveAs(dir.path + "/result.xls")

   
xlApp.visible = true
}

0 件のコメント:

コメントを投稿