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实现把utf-8格式的文件转换成gbk格式的文件
Jan 22 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
May 21 Python
Python处理JSON数据并生成条形图
Aug 05 Python
Python自定义线程类简单示例
Mar 23 Python
python 实现返回一个列表中出现次数最多的元素方法
Jun 11 Python
python 列表推导式使用详解
Aug 29 Python
Python序列对象与String类型内置方法详解
Oct 22 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
Feb 26 Python
Python如何实现定时器功能
May 28 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
pycharm代码删除恢复的方法
Jun 26 Python
教你用python实现12306余票查询
Jun 30 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 检查电子邮件函数(自写)
2014/01/16 PHP
destoon各类调用汇总
2014/06/20 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
再谈JavaScript线程
2015/07/10 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
Python获取远程文件大小的函数代码分享
2014/05/13 Python
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
Django models.py应用实现过程详解
2019/07/29 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
Python通过类的组合模拟街道红绿灯
2020/09/16 Python
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
机关道德讲堂实施方案
2014/03/15 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
毕业班工作总结
2015/08/10 职场文书
Python中request的基本使用解决乱码问题
2022/04/12 Python