2016-08-12 8 views
1

fisrt에서 xlsxwriter를 사용하여 하나의 셀에 간단한 수식을 작성하고 * .xlsx 파일을 닫습니다. 그런 다음 셀의 값을 읽으려고하지만 동일한 프로그램에서 xlrd를 사용하여 셀에서 '0'만 읽으려고합니다.xlsxwriter를 닫고 xlrd를 사용하여 Excel 파일을 읽은 후 formular 값을 읽지 못함

셀에 고정 값 (문자열 또는 상수와 같은)을 읽으면 제대로 작동합니다. * .xlsx 파일에서 수식 셀을 수동으로 만들면 xlrd도 수식 값을 가져올 수 있습니다.

포럼 셀라를 * .xlsx로 작성한 다음 동일한 프로그램에서 읽을 때만 수식 셀의 값을 읽을 수없는 것으로 보입니다.

파이썬 : 3.4.3 xlrd : 1.0.0 xlsxwriter : 2.0 0.0

하지만 그것은 것으로 예상 : 0.9.3

import xlrd 
import xlsxwriter 

name = 'abc.xlsx' 
sheet_name = 'sheet1' 
# write a formula in 'D1' as '=A1+C1' 
out_book = xlsxwriter.Workbook(name, {'im_memory': True}) 
out_sheet = out_book.add_worksheet(sheet_name) 
out_sheet.write('A1', 1) 
out_sheet.write('C1', 2) 
out_sheet.write_formula(0, 3, '=A1+C1') 
out_book.close() 

#After closing excel, read the cell 
tmp = xlrd.open_workbook(name) 
sheet = tmp.sheet_by_name(sheet_name) 
#show '2.0' 
print (sheet.cell_value(0, 2)) 
#show '0.0' 
print (sheet.cell_value(0, 3)) 

결과는 2.0 3.0

어떻게 해결할 수 있습니까? 고마워요!

+0

'xlwing'을 사용하여 쓰기 및 읽기를 모두 수행 할 수 있습니다. http://docs.xlwings.org/en/stable/quickstart.html – Trimax

+0

감사합니다. Trimax. xlwing이 처음으로 수식을 쓰고 그 값을 읽을 수 있습니까? 나는 xlwing 나중에 시도 할 것이다 – Finnson

답변

0

XlsxWriter는 수식 값을 Excel에 쓰지 않습니다. 문서의 Formula Result 섹션을 참조하십시오.

+0

안녕 Jmcnamara, 나는 그것을 알고있다. 하지만 수식이 수동으로 Excel에서 작성된 경우 Excel에서 수식의 최종 값을 읽을 수있는 이유는 무엇입니까? – Finnson

+0

Excel은 수식 값을 계산하여 파일에 기록하기 때문에. – jmcnamara

+0

감사합니다. jmcnamara. 당신 말이 맞아요! 하지만 먼저 Excel에 수식을 작성한 다음 프로그래밍을 통해 Excel에서 값을 읽는 기능이 정말로 필요합니다. 나중에 xlwings 또는 openpyxl을 시도 할 것입니다. – Finnson