处理excel数据时遇到了个问题,数据导出来总是不全。
后来发现是 *.xls 格式的问题:
xls格式 最大行数为
65535
xlsx格式 最大行数为
1048576
(满足要求了)
而且xlsx文件大小只有原来的1/3左右。
但是手上有一大堆旧的xls文件需要转换。
解决方法:
安装pywin32
pip install pywin32
代码
import os
import os.path
import win32com.client as win32
## 根目录
rootdir = u'E:\\temp1'
# 三个参数:父目录;所有文件夹名(不含路径);所有文件名
for parent, dirnames, filenames in os.walk(rootdir):
for fn in filenames:
filedir = os.path.join(parent, fn)
print(filedir)
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(filedir)
# xlsx: FileFormat=51
# xls: FileFormat=56,
wb.SaveAs(filedir.replace('XLS', 'xlsx'), FileFormat=51)
wb.Close()
excel.Application.Quit()
网友评论