シナリオ
- Java用のExcel操作ライブラリApachePOIをSikuliXで使用する
- POIライブラリの保管場所はc:¥ApachePOI
- サンプルプログラムではc:¥Sample.xlsxの内容を表示する
Excelファイルの内容
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
from java.io import File, FileOutputStream, FileInputStream
from org.apache.poi.ss.usermodel import WorkbookFactory
reload(sys)
sys.setdefaultencoding("utf-8")
# cell_value
# 戻り値: セルの値 値がない場合は None
# 引数 :
# s: シート名
# r: 行位置 1行目はゼロ
# c: 列位置 A列はゼロ
def cell_value(s, r, c):
sheet = wb.getSheet(s)
row = sheet.getRow(r)
if row != None:
cell = row.getCell(c)
else:
cell = None
return cell
# Excelファイルの保管場所
FILE_PATH = u"C:\\Sample.xlsx"
try:
fis = FileInputStream(FILE_PATH)
wb = WorkbookFactory.create(fis)
# セル:A1
print u"セル:A1=", cell_value(u"シート", 0, 0)
# セル:B2
print u"セル:B2=", cell_value(u"シート", 1, 1)
# セル:A5
print u"セル:A5=", cell_value(u"シート", 4, 0)
except Exception as e:
print e
finally:
wb.close()
fis.close()
結果
セル:A1= 国名
セル:B2= JPY
セル:A5= None