您好,登錄后才能下訂單哦!
這篇文章主要講解了如何實現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
查詢之后發現普通的讀取不能直接讀取帶單元格的值。現在采用
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讀取,就能讀取到公式了。
或者調用win32com.client import Dispatch 模塊。運行下面代碼后再進行讀取,就能讀取到數據/值
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文件中帶公式的值有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。