时间:2021-05-22
在进行excel文件读取的时候,我自己设置了部分直接从公式获取单元格的值
但是用之前的读取方法进行读取的时候,返回值为空
import osimport xlrdfrom xlutils.copy import copyfile_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) # 切换到第一个sheetdef 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_workbookdef get_xlrd(self,row,col): wb = load_workbook(self.data_file, data_only=True) ws = wb.worksheets[0] return ws.cell(row,col).valueopenpyxl 读取带公式的excel时,可能会存在这些问题
要么读出来是“None”,要么是“公式本身”
解决办法:
公式是代码写进去的,这样读出来就是None。
手动写入公式并保存,再用openpyxl读取,能读取到公式的结果。
代码写入的公式/值,需要手动打开Excel,并保存,再用openpyxl读取,就能读取到公式了。
或者调用win32com.client import Dispatch 模块。运行下面代码后再进行读取,就能读取到数据/值
from win32com.client import Dispatchdef just_open(filename=file_name): xlApp = Dispatch("Excel.Application") xlApp.Visible = False xlBook = xlApp.Workbooks.Open(filename) xlBook.Save() xlBook.Close()到此这篇关于Python读取excel文件中带公式的值的实现的文章就介绍到这了,更多相关Python读取excel公式的值内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
python读取Excel表格文件,例如获取这个文件的数据python读取Excel表格文件,需要如下步骤:1、安装Excel读取数据的库-----xlrd直接
程序中经常需要使用excel文件,批量读取文件中的数据python读取excel文件可以使用xlrd模块pipinstallxlrd安装模块示例:#coding
Python中几种常用包比较2、用xlrd包读取Excel文件引用包importxlrd打开文件xlrd.open_workbook(r'/root/excel
excel中有图片是很常见的,但是通过python读取excel中的图片没有很好的解决办法。网上找了一种很聪明的方法,原理是这样的:1、将待读取的excel文件
python读取.txt(.log)文件、.xml文件、excel文件数据,并将数据类型转换为需要的类型,添加到list中详解1.读取文本文件数据(.txt结尾