テンプレート処理サンプルコード


import sys
import datetime
import xtrain

t1 = datetime.datetime.today()
print('処理開始 ' + str(t1.month) + '月' + str(t1.day) + '日 ' + str(t1.hour) + ':' + str(t1.minute) + ':' + str(t1.second) + '.' + str(t1.microsecond))

template_path = 'Template.xlsx'
output_path   = 'Python_SAMPLE.xlsx'

#
# テンプレートExcelブックオープン
#
book = xtrain.AXLS_open_template(template_path)
if not book:
	print('AXLS_open_template() ERROR')
	sys.exit()

rtn = xtrain.AXLS_error_code(book)
if rtn != 0:
	error_mesg = xtrain.AXLS_error_mesg(book)
	print('AXLS_open_template() ERROR code=' + str(error_code) + ' message=' + error_mesg)
	xtrain.AXLS_scrap_book(book)
	sys.exit()

#
# ブック名指定
#
argument = "BOOK=" + output_path

rtn = xtrain.AXLS_put_values(book, argument)
if rtn != 0:
	error_code = xtrain.AXLS_error_code(book)
	error_mesg = xtrain.AXLS_error_mesg(book)
	print('AXLS_put_values() ERROR code=' + str(error_code) + ' message=' + error_mesg)
	xtrain.AXLS_scrap_book(book)
	sys.exit()

#
# キー入力内容でExcel更新
#
print ('更新内容(セル値のみ上書き可能)')
argument = input('> ')

rtn = xtrain.AXLS_put_values(book, argument)
if rtn != 0:
	error_code = xtrain.AXLS_error_code(book)
	error_mesg = xtrain.AXLS_error_mesg(book)
	print('AXLS_put_values() ERROR code=' + str(error_code) + ' message=' + error_mesg)
	xtrain.AXLS_scrap_book(book)
	sys.exit()

#
# Excelブック保存
#
rtn = xtrain.AXLS_save_book(book)
if rtn != 0:
	error_code = xtrain.AXLS_error_code(book)
	error_mesg = xtrain.AXLS_error_mesg(book)
	print('AXLS_save_book() ERROR code=' + str(error_code) + ' message=' + error_mesg)
	xtrain.AXLS_scrap_book(book)
	sys.exit()


t1 = datetime.datetime.today()
print('処理終了 ' + str(t1.month) + '月' + str(t1.day) + '日 ' + str(t1.hour) + ':' + str(t1.minute) + ':' + str(t1.second) + '.' + str(t1.microsecond))

	


解説
テンプレートブックオブジェクトの作成

#
# テンプレートExcelブックオープン
#
book = xtrain.AXLS_open_template(template_path)
if not book:
	print('AXLS_open_template() ERROR')
	sys.exit()

rtn = xtrain.AXLS_error_code(book)
if rtn != 0:
	error_mesg = xtrain.AXLS_error_mesg(book)
	print('AXLS_open_template() ERROR code=' + str(error_code) + ' message=' + error_mesg)
	xtrain.AXLS_scrap_book(book)
	sys.exit()
 

	
AXLS_open_template関数を使い、テンプレートブックオブジェクトを生成します。
オブジェクトの実体は、DLL/共有ライブラリ内に確保された、X-TRAiN用構造体の アドレスを16進数に変換した文字列です。
以降の関数呼び出し時には、この値を使用します。
エラー時は戻り値としてNULLが返却されますが、これはメモリ確保ができなかった場合のみです。
読み込みエラーの判定は、AXLS_error_code関数でエラーコードを、 AXLS_error_mesg関数でエラーメッセージを取得して行います。
異常終了する場合は、AXLS_scrap_book関数でメモリの解放を行ってください。
作成ブック名、更新対象シートの指定

#
# ブック名指定
#
argument = "BOOK=" + output_path

rtn = xtrain.AXLS_put_values(book, argument)
if rtn != 0:
	error_code = xtrain.AXLS_error_code(book)
	error_mesg = xtrain.AXLS_error_mesg(book)
	print('AXLS_put_values() ERROR code=' + str(error_code) + ' message=' + error_mesg)
	xtrain.AXLS_scrap_book(book)
	sys.exit()
 

	
AXLS_put_values関数を使い、作成ブック名や更新対象シートのカレント化を行います。
セル値の更新

#
# キー入力内容でExcel更新
#
print ('更新内容(セル値のみ上書き可能)')
argument = input('> ')

rtn = xtrain.AXLS_put_values(book, argument)
if rtn != 0:
	error_code = xtrain.AXLS_error_code(book)
	error_mesg = xtrain.AXLS_error_mesg(book)
	print('AXLS_put_values() ERROR code=' + str(error_code) + ' message=' + error_mesg)
	xtrain.AXLS_scrap_book(book)
	sys.exit()

 

	
テンプレート処理では、セルの値のみを更新することができます。
罫線、セルの塗りつぶし、フォントの設定、書式の追加や変更を行うことはできません。
本サンプルは、標準入力(キーボード入力)より、A1=値 の形式でセルの値を 指定して更新する仕様です。
ブックの保存

#
# Excelブック保存
#
rtn = xtrain.AXLS_save_book(book)
if rtn != 0:
	error_code = xtrain.AXLS_error_code(book)
	error_mesg = xtrain.AXLS_error_mesg(book)
	print('AXLS_save_book() ERROR code=' + str(error_code) + ' message=' + error_mesg)
	xtrain.AXLS_scrap_book(book)
	sys.exit()

 

	
AXLS_save_book関数を使い、ブックの保存を行います。