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')