微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python读取excel文件中带公式的值的实现

这篇文章主要介绍了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()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐