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文件和目录操作函数小结
Jul 11 Python
python 简单的多线程链接实现代码
Aug 28 Python
Python Tkinter实现简易计算器功能
Jan 30 Python
python实现csv格式文件转为asc格式文件的方法
Mar 23 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
Pycharm激活方法及详细教程(详细且实用)
May 12 Python
django ORM之values和annotate使用详解
May 19 Python
python RSA加密的示例
Dec 09 Python
Python scrapy爬取起点中文网小说榜单
Jun 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
PHP+javascript模拟Matrix画面
2006/10/09 PHP
PDO的安全处理与事物处理方法
2016/10/31 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
浅析LigerUi开发中谨慎载入common.css文件
2013/07/09 Javascript
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
2015/11/30 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
vue将单页面改造成多页面应用的方法
2018/11/25 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
JS中的函数与对象的创建方式
2019/05/12 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
Vue中正确使用Element-UI组件的方法实例
2020/10/13 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
利用Python绘制MySQL数据图实现数据可视化
2015/03/30 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
Python实现图像的垂直投影示例
2020/01/17 Python
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
编写strcpy函数
2014/06/24 面试题
J2EE面试题大全
2016/08/06 面试题
文明礼仪事迹材料
2014/01/09 职场文书
媒体宣传策划方案
2014/05/25 职场文书
党员三严三实心得体会
2014/10/13 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers