シナリオ
- Java用のExcel操作ライブラリApachePOIをSikuliXで使用する
- POIライブラリの保管場所はc:¥ApachePOI
- サンプルプログラムではc:¥Sample.xlsxに「さんぷる」シートを追加し、セルA1に「ほげ」、セルB1に「123」をセット
POIの設定はこちらを参照
サンプルコード
# Apache POIライブラリをロード
load("C:\\ApachePOI\\commons-collections4-4.4.jar")
load("C:\\ApachePOI\\commons-compress-1.20.jar")
load("C:\\ApachePOI\\commons-math3-3.6.1.jar")
load("C:\\ApachePOI\\poi-5.0.0.jar")
load("C:\\ApachePOI\\poi-ooxml-5.0.0.jar")
load("C:\\ApachePOI\\poi-ooxml-lite-5.0.0.jar")
load("C:\\ApachePOI\\xmlbeans-4.0.0.jar")
import sys
import os
from java.io import FileOutputStream, FileInputStream
from org.apache.poi.ss.usermodel import WorkbookFactory
reload(sys)
sys.setdefaultencoding("utf-8")
# Excelファイルの保管場所
FILE_PATH = u"C:\\Sample.xlsx"
try:
fis = FileInputStream(FILE_PATH)
wb = WorkbookFactory.create(fis)
# シート存在確認
sheet = wb.getSheet(u"さんぷる")
if sheet == None:
# シート追加
sheet = wb.createSheet(u"さんぷる")
else:
print u"シート:さんぷるは既にあります"
wb.close()
fis.close()
exit()
# 行作成
row = sheet.createRow(0)
# A1セル作成&値セット
cell = row.createCell(0)
cell.setCellValue(u"ほげ")
# B1セル作成&値セット
cell = row.createCell(1)
cell.setCellValue(123)
# 上書き保存
fos = FileOutputStream(FILE_PATH)
wb.write(fos)
except Exception as e:
print e
wb.close()
fis.close()
fos.close()
結果