xlrdとxlwtで問題が発生しています。以下のサンプルコードを貼り付けます。
from xlwt import Workbook, Formula, XFStyle
import xlrd
book = Workbook()
sheet1 = book.add_sheet('Sheet 1')
myFontStyle = XFStyle()
myFontStyle.num_format_str = '0.00'
sheet1.write(0,0,10, myFontStyle)
sheet1.write(0,1,20, myFontStyle)
sheet1.write(1,0,Formula('AVERAGE(A1:B1)'), myFontStyle)
book.save('formula.xls')
wb = xlrd.open_workbook('formula.xls')
sh = wb.sheet_by_index(0)
for rownum in range(sh.nrows):
print sh.row_values(rownum)
アイデアは、Excelファイルにいくつかの値を書き込み、LogNormal、StdDevなどのExcel固有の関数をいくつか持ち、XLRDを使用して計算された値を読み取ることです。
上記のコードを実行すると、望ましくない次の結果が得られます。-
[10.0, 20.0]
[u'', '']
理想的には、2行目で15を取得する必要があります。開いたときにExcelを完全に書き込みますが、XLRDは結果を返しません。私は非常に重要なプロジェクトのためにこれで立ち往生しています。お早めにご返信くださいますようお願い申し上げます。
ありがとう、よろしくTarun Pasrija