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根据经纬度计算距离示例
Feb 16 Python
python中去空格函数的用法
Aug 21 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
May 25 Python
举例简单讲解Python中的数据存储模块shelve的用法
Mar 03 Python
Python如何获取系统iops示例代码
Sep 06 Python
django 2.0更新的10条注意事项总结
Jan 05 Python
python的pstuil模块使用方法总结
Jul 26 Python
Python 线程池用法简单示例
Oct 02 Python
如何使用pandas读取txt文件中指定的列(有无标题)
Mar 05 Python
python实现扑克牌交互式界面发牌程序
Apr 22 Python
python属于哪种语言
Aug 16 Python
Django如何实现防止XSS攻击
Oct 13 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
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
PHP APC的安装与使用详解
2013/06/13 PHP
PHP排序算法类实例
2015/06/17 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
PHP7 foreach() 函数修改
2021/03/09 PHP
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
javascript 一段左右两边随屏滚动的代码
2009/06/18 Javascript
热点新闻滚动特效的js代码
2013/08/17 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
js选项卡的制作方法
2017/01/23 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
Get The Label中文官网:英国运动时尚购物平台
2017/04/19 全球购物
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
汽车运用工程毕业生自荐信
2013/10/29 职场文书
装修施工安全责任书
2014/07/24 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
3.15消费者权益日活动总结
2015/02/09 职场文书
文明上网主题班会
2015/08/14 职场文书
2016暑期社会实践心得体会范文
2016/01/14 职场文书
HTML常用标签超详细整理
2022/03/19 HTML / CSS
MySQL优化之慢日志查询
2022/06/10 MySQL