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

在进行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读取excel文件中带公式的值的实现

本文地址: http://www.cppcns.com/jiaoben/python/308371.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET工资低?那肯定是你打开的方式不正确

点击上方蓝字关注我们因为工作的关系,本人总是会接触到一些刚踏入社会没多久的.NET开发小伙伴。尤其是年关将近,这时候想要跳槽的人特别多,所以收到一些小伙伴的迷茫求解。今天就拿其中一个来说,我们暂且称他为A同学吧。A同学是一…

10分钟读懂人工智能、机器学习到底有什么关系

文末彩蛋,错过哭一年。。。。 人工智能的浪潮正在席卷全球,诸多词汇时刻萦绕在我们耳边:人工智能(Artificial Intelligence)、机器学习(Machine Learning)。不少人对这些高频词汇的含义及其背后…

复制Oracle表的结构

概述: 复制表的结构(只复制表结构,源表名:b_Jkpt_Oaxt_Trafficaccident 新表名:Test_OAXT_TrafficAccident) Oralce语句: create table Test_OAXT_TrafficAccident as select * from b_Jkpt_Oaxt_Trafficaccident where 12

Web API实现微信公众平台开发-接收数据Post

介绍当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发…

gbdt 算法比随机森林容易_随机森林与GBDT

Bagging策略1.总样本数量是n个,从样本中重采样(有放回的)选出n个样本 ,会有约33.2%的样本不会被抽到2.在所有属性上对这n个样本建立分类器(比如决策树,svm,lr)3.重复步骤1和2m次,建立了m个分类器4.将数据放在这m个分类…

苏泊尔搭载华为鸿蒙系统,华为鸿蒙打算在一年内跨过生死线,拿下16%的市场份额...

原标题:华为鸿蒙打算在一年内跨过生死线,拿下16%的市场份额华为鸿蒙操作系统发布已经有一段时间了,这个操作系统直到上个月月底才开启了公测,很多用户都已经使用上了华为的这个鸿蒙操作系统。根据不少用户的反馈情况来看&#xff…

python获取系统时间函数_简单记录python的时间函数操作

1. time和datetime模块 import datetime,time 2. 获得当前时间 time.time() #获得当前时间,返回float型 time.localtime([float time]) #获得本地当前时间,返回time.struct_time类型 说明:struct_time是一个只读的9元组,其中参数命…

10个最佳的大数据处理编程语言

大数据的浪潮仍在继续。它渗透到了几乎所有的行业,信息像洪水一样地席卷企业,使得软件越发庞然大物,比如Excel看上去就变得越来越笨拙。数据处理不再无足轻重,并且对精密分析和强大又实时处理的需要变得前所未有的巨大。 那么&…

简单谈谈Server2008的NAP到底是什么

什么是NAP? NAP-Network Access Protection,网络访问保护。我觉得其实还不完整,我认为完整的应该叫做网络策略访问保护。他的作用是用策略来保护客户端对网络的访问,确保整个网络的访问过程是达到一定安全级别的。07年初前我开…

再记一次 应用服务器 CPU 暴高事故分析

一:背景 1. 前言大概有2个月没写博客了,不是不想写哈????,关注公号的朋友应该知道我这两个月一直都在翻译文章,前前后后大概100篇左右吧,前几天看公号的 常读用户 降了好几十,心疼哈,还得回…

request-promise 获取返回头信息_http返回的状态码 大全

00 Continue 继续。客户端应继续其请求101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议200 OK 请求成功。一般用于GET与POST请求201 Created 已创建。成功请求并创建了新的资源…

android shell用户界面,shell界面下安装和卸载Android应用程序(apk包)

安装1.$ adb install apk文件名安装系统应用$ adb push apk文件名 /system/app卸载$ adb uninstall 包名Home->设置->应用程序->管理应用程序->选择某应用程序->卸载相关文件/system/app/apk文件2.第三方应用/data/data/包名4.dex文件是Android 虚拟机Dalvik 支…

乐高创意机器人moc_乐高MOC佳作欣赏丨机械之美机器人乐高作品集1

导语乐高似乎能搭建任何事物,即使是机器人,机甲也不丝毫逊色,巧妙地运用零件,打破常规组合模式,让乐高零件组合在一起竟能呈现充满未来科技感的机器人,它们有的形态奇特,面貌诡异,有…

”残酷“人生第一步

仔仔终于要面对人生中的第一次巨大困难:断奶了。恰逢夫人要出差几日,刚刚开始,我们都很犹豫。确实很怕他整夜哭闹。但是思考再三还是决定,让小家伙独自面对吧。于是,他的“残酷”人生第一步,就这样准备开始…

IdentityServer4之Authorization Code(授权码)相对更安全

前言接着授权模式聊,这次说说Authorization Code(授权码)模式,熟悉的微博接入、微信接入、QQ接入都是这种方式(这里说的是oauth2.0的授权码模式),从用户体验上来看,交互方式和Implicit没啥改变,随便找个网站瞅瞅&#…

后端根据百度地图真实路径距离_导航软件哪家强?实测百度地图and高德地图哪个更靠谱...

随着社会的不断发展,人们的生活越来越离不开地图导航,无论是开车出行还是到去到陌生的地方,我们都会用到手机地图。然而在众多导航软件中,使用最为广泛的就要属百度地图和高德地图了。但别看都是导航软件,其中差别还真…

php用ajaxs上传图片_jquery+ajax+php 图片上传

最近在写“网上商城”的课程设计,用到了图片上传。我要实现的功能主要有:(1)能够上传多张图片,不过当然是有限制的,最多5张;(2)能够进行图片预览;(3)能够删除图片;(4)服务器能够获取上传的图片信…

一文读懂 KMP 算法

字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法&#xff…

node.js require 自动执行脚本 并生成html,nodejs 执行脚本并实时输出

接到需求需要一个服务来执行shell脚本,要求可以实时打印shell脚本执行的过程,并看到脚本执行的结果。明确任务目标:这是一个web服务,需要执行shell脚本当一个脚本执行的时候,再次发送请求需要等待当前脚本执行完毕&…

128位加密SSL证书

SGC超真SSL(SGC ZhenSSL)属于 SGC Enabled High Assurance SSL, 是 WoSign 的增强型 SSL证书产品,支持 SGC 强制128位加密技术,即使用户的浏览器只支持 40 位( 如 IE4.X) 或 56 位 ( 如 IE5.X) 也能自动强制实现至少 128 位的高强度加密&…