电脑上只装了个WPS,按照网上的教学,我试着用win32com,将xls转xlsx,可是一直出错.
import win32com.client as win32
import os
import os.path
def xlsToxlsx():
rootdir = r'E:\Python\pythonProject2'
rootdir1 = r'E:\Python\pythonProject2\new'
files = os.listdir(rootdir)
num = len(files)
for i in range(num):
kname = os.path.splitext(files[i])[1]
if kname == '.xls':
fname = rootdir + '\\' + files[i]
fname1 = rootdir1 + '\\' + files[i]
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(fname)
wb.SaveAs(fname1 + 'x', FileFormat=51)
wb.Close()
excel.Application.Quit()
xlsToxlsx()
Traceback (most recent call last):
File "E:\Python\pythonProject2\xlsToxlsx.py", line 24, in
xlsToxlsx()
File "E:\Python\pythonProject2\xlsToxlsx.py", line 20, in xlsToxlsx
wb.SaveAs(fname1 + 'x', FileFormat=51)
File "C:\Users\MYW\AppData\Local\Temp\gen_py\3.10\45541000-5750-5300-4B49-4E47534F4655x0x3x0\_Workbook.py", line 256, in SaveAs
return self._oleobj_.InvokeTypes(1925, LCID, 1, (24, 0), ((12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17), (3, 49), (12, 17), (12, 17), (12, 17), (12, 17), (12, 17)),Filename
pywintypes.com_error: (-2147352567, '发生意外。', (0, None, None, None, 0, -2147024809), None)
我尝试改过 Excel.Application为 ket.Application,其运行结果也和之前错误一样.
完成转换
你打印fname1的值,看看是啥呢