python公式_Python读取excel文件中带公式的值的实现
在進行excel文件讀取的時候,我自己設置了部分直接從公式獲取單元格的值
但是用之前的讀取方法進行讀取的時候,返回值為空
import os
import xlrd
from xlutils.copy import copy
file_path = os.path.abspath(os.path.dirname(__file__)) # 獲取當前文件目錄
print(file_path)
root_path = os.path.dirname(file_path) # 獲取文件上級目錄
data_path = root_path + '\\data' # 拼接data文件夾地址
data_file = data_path + '\\api.xlsx' # 拼接excel文件地址
data = xlrd.open_workbook(data_file) # 讀取文件
sheet = data.sheet_by_index(0) # 切換到第一個sheet
def get_excel(row, col):
"""
excel 單元格讀取
:param row:
:param col:
:return:
"""
rows = sheet.nrows # 獲取最大行號
cols = sheet.ncols # 獲取最大列號
path_name = sheet.cell_value(row, col) # 獲取單元格值
return rows,cols,path_name
查詢之后發(fā)現(xiàn)普通的讀取不能直接讀取帶單元格的值。現(xiàn)在采用
openpyxl下的load_workbook模塊
from openpyxl import load_workbook
def get_xlrd(self,row,col):
wb = load_workbook(self.data_file, data_only=True)
ws = wb.worksheets[0]
return ws.cell(row,col).value
openpyxl 讀取帶公式的excel時,可能會存在這些問題
要么讀出來是“None”,要么是“公式本身”
wb = openpyxl.load_workbook('daikuan.xlsx',data_only = True)-------讀出來的是 none
#wb = openpyxl.load_workbook('daikuan.xlsx',data_only = False)------------讀出來的是 公式本身
解決辦法:
公式是代碼寫進去的,這樣讀出來就是None。
手動寫入公式并保存,再用openpyxl讀取,能讀取到公式的結果。
代碼寫入的公式/值,需要手動打開Excel,并保存,再用openpyxl讀取,就能讀取到公式了。
或者調(diào)用win32com.client import Dispatch 模塊。運行下面代碼后再進行讀取,就能讀取到數(shù)據(jù)/值
from win32com.client import Dispatch
def just_open(filename=file_name):
xlApp = Dispatch("Excel.Application")
xlApp.Visible = False
xlBook = xlApp.Workbooks.Open(filename)
xlBook.Save()
xlBook.Close()
到此這篇關于Python讀取excel文件中帶公式的值的實現(xiàn)的文章就介紹到這了,更多相關Python讀取excel公式的值內(nèi)容請搜索我們以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持我們!
本文標題: Python讀取excel文件中帶公式的值的實現(xiàn)
本文地址: http://www.cppcns.com/jiaoben/python/308371.html
總結
以上是生活随笔為你收集整理的python公式_Python读取excel文件中带公式的值的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel中如何进行分页预览
- 下一篇: python获取系统时间函数_简单记录p