Python:使用wps缓存值保存excel公式值

data_only==True 返回None值
由于excel公式计算规则复杂,因而第三方无法独立计算公式生成的值,需要有缓存数据,这之前需要用excel或者wps等软件打开再保存会有缓存值。
安装pywin32调用wps报错,安装调用excel更好一些,然而运行时打开的文件在wps中闪现似乎匪夷所思(有趣的是当用wps点开任意文档时,程序运行会加速,而该文档一直在加载中,但这样运行了一会儿会出错)
知识链接:
在Python代码中调用WPS
今天使用python win32com调用金山wps报错,最后找到了解决办法
python中win32com.client.Dispatch()函数用法
为何找不到microsoft excel application
Python读取excel三大常用模块到底谁最快

import os
import openpyxl
import re
from win32com.client import Dispatch

def just_open(filename):#解决值丢失的问题
    xlApp = Dispatch("Excel.Application")#该参数据说是注册表中项但是没找到
    xlApp.Visible = False
    xlBook = xlApp.Workbooks.Open(filename)
    xlBook.Save()
    xlBook.Close()
    return xlBook
input= r'C:\Users\huang\3D Objects'
os.chdir(input)
mywb = openpyxl.Workbook()
mysheet=mywb["Sheet"]
i=1
for file in os.listdir():
    if os.path.splitext(file)[1] == '.xlsx':
        i=i+1
        xlBook = just_open(input+'\\'+file)
        wb=openpyxl.load_workbook(file,data_only=True)
        wbsheet = wb['Sheet']
        for j in range(1,5,1):
            mysheet[chr(j+64)+str(i)]=wbsheet[chr(j+64)+str(2)].value
            print(wbsheet[chr(j+64)+str(2)].value)
        wb.save(file)
mywb.save(r'C:\Users\huang\Desktop'+'\\'+'权益导入.xlsx')

猜你喜欢

转载自blog.csdn.net/qq_37639139/article/details/122134374
今日推荐