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


Posted in Python onApril 17, 2020

在进行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文件中带公式的值的实现的文章就介绍到这了,更多相关Python读取excel公式的值内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python解析json实例方法
Nov 19 Python
Python网络编程中urllib2模块的用法总结
Jul 12 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
举例讲解Python常用模块
Mar 08 Python
python实现微信防撤回神器
Apr 29 Python
关于numpy数组轴的使用详解
Dec 05 Python
在python shell中运行python文件的实现
Dec 21 Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 Python
关于tf.matmul() 和tf.multiply() 的区别说明
Jun 18 Python
python反扒机制的5种解决方法
Feb 06 Python
python爬取企查查企业信息之selenium自动模拟登录企查查
Apr 08 Python
python基础之函数的定义和调用
Oct 24 Python
在Matplotlib图中插入LaTex公式实例
Apr 17 #Python
python中for in的用法详解
Apr 17 #Python
解决Jupyter无法导入已安装的 module问题
Apr 17 #Python
使用 Python 读取电子表格中的数据实例详解
Apr 17 #Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 #Python
jupyternotebook 撤销删除的操作方式
Apr 17 #Python
使用python matplotlib 画图导入到word中如何保证分辨率
Apr 16 #Python
You might like
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
2011/08/08 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
php use和include区别总结
2019/10/13 PHP
DOM相关内容速查手册
2007/02/07 Javascript
更正确的asp冒泡排序
2007/05/24 Javascript
一个XML格式数据转换为图表的例子
2010/02/09 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
python 控制语句
2011/11/03 Python
python执行等待程序直到第二天零点的方法
2015/04/23 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
超简单使用Python换脸实例
2019/03/27 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
安全环保标语
2014/06/09 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
初中英语教学反思范文
2016/02/15 职场文书
Javascript设计模式之原型模式详细
2021/10/05 Javascript