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

  介绍

这篇文章主要讲解了如何实现Python读取excel文件中带公式的值,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

在进行excel文件读取的时候,我自己设置了部分直接从公式获取单元格的值

但是用之前的读取方法进行读取的时候,返回值为空

导入操作系统
  进口xlrd
  从xlutils。复制进口复制
  
  file_path=os.path.abspath (os.path.dirname (__file__)) #获取当前文件目录
  打印(file_path)
  root_path=os.path.dirname (file_path) #获取文件上级目录
  data_path=root_path + & # 39; \ \数据# 39;#拼接数据文件夹地址
  data_file=data_path + & # 39; \ \ api.xlsx& # 39;#拼接excel文件地址
  data=https://www.yisu.com/zixun/xlrd.open_workbook (data_file) #读取文件
  表=data.sheet_by_index(0) #切换到第一个表
  
  坳def get_excel(行):
  ”“”
  excel单元格读取
  :param行:
  :param坳:
  返回:
  ”“”
  行=表。nrows #获取最大行号
  关口=表。ncols #获取最大列号
  path_name=表。cell_value(行)上校#获取单元格值
  还行,关口,path_name 

查询之后发现普通的读取不能直接读取带单元格的值。现在采用

openpyxl下的load_workbook模块

  def get_xlrd(自我、行坳):
  世行=load_workbook(自我。data_file data_only=True)
  ws=wb.worksheets [0]
  上校,返回ws.cell(行)。值

openpyxl读取带公式的excel时,可能会存在这些问题

要么读出来是“没有”,要么是“公式本身“

 wb=openpyxl.load_workbook (& # 39; daikuan.xlsx& # 39;, data_only=True) - - - - - - -读出来的是没有
  # wb=openpyxl.load_workbook (& # 39; daikuan.xlsx& # 39;, data_only=False) - - - - - - - - - - - -读出来的是公式本身

解决办法:
公式是代码写进去的,这样读出来就是没有。
手动写入公式并保存,再用openpyxl读取,能读取到公式的结果。
代码写入的公式/值,需要手动打开Excel,并保存,再用openpyxl读取,就能读取到公式了。

或者调用win32com。客户端导入调度模块。运行下面代码后再进行读取,就能读取到数据/值

。客户端导入调度
  
  def just_open(文件名=file_name):
  xlApp=调度(“Excel.Application")
  xlApp。可见=False
  xlBook=xlApp.Workbooks.Open(文件名)
  xlBook.Save ()
  xlBook.Close () 

看完上述内容,是不是对如何实现Python读取excel文件中带公式的值有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。

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