Python 如何读取有公式cell的结果内容
admin
2023-01-20 10:20:50
0
    操作Excel通常是用如下三个扩展体:

import xlrd
import xlwt
import openpyxl

    xlrd(读) 和 xlwt(写)是一对。openpyxl独立,即可读也可写。
    正常读都没有问题,只是读有公式的cell时,会出现如题症状。对此,xlrd似乎没答案,而openpyxl开出的方子如下:

wb1 = openpyxl.load_workbook(xlsxFileWithFullPath, data_only=True)

就是加上 “data_only=True” 这个参数。
xlsxFileWithFullPath ---要操作的文件。
加上以后你会发现,还是依然如故,或者是时可时否!

如把文件打开,再保存一遍,执行程序,第一遍可以,第二遍就不行了!

其实, 关于 data_only=True 这个参数有个重要说明:

# data_only (bool) – controls whether cells with formula have either the formula (default) or the value stored the last time Excel read the sheet

这就解释了上述时可时否的问题。

这样解决问题的办法就有了:用程序来完成那个保存文件的任务即可!

(1)。。。
def ReadLine(self, tip1, tip2, movingRC, fixedRC, RorC, totalCells, sheetName, xlsxFileWithFullPath):

[!!]just open and save the file once! why? see bellow!

xlsxDealer.`JustOpenAndSaveTheFile`(xlsxFileWithFullPath)

(2)。。。

def JustOpenAndSaveTheFile(self, file_name):
from win32com.client import Dispatch
xlApp = Dispatch("Excel.Application")
xlApp.Visible = False
xlBook = xlApp.Workbooks.Open(file_name)
xlBook.Save()
xlBook.Close()

问题是解决了,速度就是有点慢!

相关内容

热门资讯

美防长:对伊朗战争已耗资375... △美国国防部长赫格塞思(资料图)央视记者当地时间21日获悉,美国国防部长赫格塞思表示,美国对伊朗战争...
在全国抗议声中,泽连斯基解除乌... 据乌克兰媒体《基辅独立报》报道,乌克兰总统泽连斯基解除了乌克兰武装部队总司令瑟尔斯基的职务,并任命联...
也门胡塞武装:停靠沙特港口船只... 新华社科威特城7月21日电(记者尹炣)萨那消息:也门胡塞武装20日警告国际航运公司称,与沙特港口开展...
特朗普:胡塞武装若封锁红海,美... 新华社华盛顿7月21日电(记者黄强 徐剑梅)美国总统特朗普21日在白宫会见到访的黎巴嫩总统奥恩时表示...
AI第一城|GOAI世界人工智... 7月21日上午,GOAI世界人工智能开源大赛(Global Open-source AI Chall...
刀闸阀行业解读:申奥阀门的技术... 在工业流体控制领域,高粘度介质、强腐蚀环境以及含固体颗粒的复杂工况,长期是制约管路系统安全运行的关键...
原创 华... 现在的手机屏幕做得是越来越大了,iPhone17 Pro Max也做了6.9英寸大屏,国产自然不能输...
WAIC2026:没有花架子,... 齐鲁晚报·齐鲁壹点 记者 任磊磊 “逛不完,根本逛不完!”在世界人工智能大会展馆现场,不少观众一边逛...
欧洲议会外委会首次派团访华,王... 2026年7月21日,中共中央政治局委员、外交部长王毅在北京会见欧洲议会外事委员会主席麦克阿里斯特率...
大熊猫“福虎”嘴角生疮,官方回... 7月21日,南京紫清湖野生动物世界发布通告,称“福虎”自嘴角边长疮至今,园区一直在中国大熊猫保护研究...