xlsx2python.pyには下記の基本機能があります
実行方法:
> python xlsx2python.py Excelファイル名 (シート番号)
(入力コマンドファイル名)
シート番号: Excelのシート番号。0から始まる
サンプルファイル: sample.xlsx
xlsx2python.pyを実行
> python xlsx2python.py sample.xlsx
D:\>python xlsx2python.py sample.xlsx
Read Excel file from [sample.xlsx]
Read parameters from [sample.in]
Open [temp.py] to append
>
### とりあえず、使いそうなpython
モジュールを読み込む文をtemp.pyに書き込む
>w from numpy import exp, log, log10, sin, cos,
tan, sqrt, power
from numpy import exp, log, log10, sin, cos, tan, sqrt, power
>
# 空行を書き込む
>w
>
### 定数をcellから読み込んで定義
### b2 cellから変数名を抽出し、c2
cellの値を定義。python文には、b2 cellの変数名以外の部分とa2
cellをコメントとして追加
>const b2 c2 a2
# b2=c2 (=1.602*0.0000000000000000001)
e = 1.602*0.0000000000000000001 # [C] elementary charge
# set C2 = e
>const b3 c3 a3
# b3=c3 (300)
T = 300 # [K] temperature
# set C3 = T
### b4 cellから変数名を抽出し、c4
cellの値を定義。python文には、b4 cellの変数名以外の部分、d4
cellとa4セルの内容をコメントとして追加
>const b4 c4 d4 a4
# b4=c4 (=29980000000)
c = 29980000000 # cm/svelocity of light
# set C4 = c
>
### 変数をsample.inに保存
>save
Save parameters to [sample.in]
Parameters:
C2 = e
C3 = T
C4 = c
>
### この次点でのtemp.py
from numpy import exp, log, sin, cos, tan, sqrt, power
# b2=c2 (=1.602*0.0000000000000000001)
e = 1.602*0.0000000000000000001 # [C] elementary charge
# b3=c3 (300)
T = 300 # [K] temperature
# b4=c4 (=29980000000)
c = 29980000000 # [cm/s] cm/svelocity of light
### ためしにrunしてみる
>run
Run [python temp.py]
>
### エラーが出ないので、ここまではOK
### 計算式を変換していく
### E3セルには N の値が入っているので、変数名Nで変換
(定数なので、実際には変換されない)
>e3>N
# E3: =16
N = 16
print(f"N = {N} (N3: None)")
# set N3 = N
>
### F3セルには log(N) [=LOG(E3)]
の式が入っているので、python式に変換し、変数名log_Nで定義
>f3>log_N
# F3: =LOG(E3)
log_N = log10(E3)
print(f"log_N = {log_N} (F3: 16)")
# set log_N = F3
>
### G3セルには e*log(N)*sin(log(N)) [=$C$2*F3*SIN(F3)]
の式が入っているので、python式に変換し、変数名resultで定義
>g3>result
# G3: =$C$2*F3*SIN(F3)
result = e*F3*sin(F3)
print(f"result = {result} (G3: -7.379537812758954e-19)")
# set result = G3
>
### ここまでの変数を保存
>save
Save parameters to [sample.in]
Parameters:
C2 = e
C3 = T
C4 = c
F3 = log_N
G3 = result
E3 = N
### この時点でのtemp.inの内容
C2=e
C3=T
C4=c
E3=N
F3=log_N
G3=result
### この時点でのtemp.pyの内容
from numpy import exp, log, log10, sin, cos, tan, sqrt, power
# b2=c2 (=1.602*0.0000000000000000001)
e = 1.602*0.0000000000000000001 # [C] elementary charge
# b3=c3 (300)
T = 300 # [K] temperature
# b4=c4 (=29980000000)
c = 29980000000 # cm/svelocity of light
# E3: 1e+16
N = 1e+16
print(f"N = {N} (E3: 1e+16)")
# F3: =LOG(E3)
log_N = log10(N)
print(f"log_N = {log_N} (F3: 16)")
# G3: =$C$2*F3*SIN(F3)
result = e*log_N * sin(log_N)
print(f"result = {result} (G3: -7.379537812758954e-19)")
### runしてみる
>run
Run [python temp.py]
N = 1e+16 (E3: 1e+16)
log_N = 16.0 (F3: 16)
result = -7.379537812758954e-19 (G3: -7.379537812758954e-19)
### ()内には、Excelのcellから読み込んだ値が表示されているので、計算値と()内の値が一致していればOK
>
helpあるいは?コマンドで表示
>?
@indent=number_of_spaces: set the number of indent spaces. default: 0
@use_validate=[0|1]: Use validate function() instead of print() function
const var_name_cell value_cell commnet_cells: print python eq for constant
definition and set parameter
cell_number [> var_name]: cell_number is like A1. read the cell and convert.
assign to var_name if given
open: open script file (is opened at the start)
close: close script file
w str: write str to script file
var=val: set val to var for replacement
del var: delete parameter var
save: save parameters to [sample.in]
show: show parameters
read execl_path isheet: read sheet isheet from excel_path
delf path: delete file 'path'
import path: read commands from file 'path' and run them
reads path: read commands from file 'path'
run command: run 'command'
help: show this help
quit|exit: exit from this program
>