在使用pandas批量处理Excel文件时,抛出XLRDError错误:XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '<?xml ve'
错误缘于需要处理的excel文件不是真正的excel文件而是一个xml电子表格,针对这种文件可以使用lxml模块进行处理,也可以将此类型文件转换为Excel文件进行处理。
需要转换的文件有近2000个,使用手动的另存为效率太低,也不符合程序员的做法,遍寻解决方案,最终确定使用win32com模块可以解决这个问题,代码如下:
# -*- coding: utf-8 -*-
from win32com.client import Dispatch
import os
path_in = "H:\\error\\"
path_out="H:\\reSave\\"
xlApp=Dispatch("Excel.Application")
xlApp.Visible=0
n=0
for fn in os.listdir(path_in):
n=n+1
xlBook=xlApp.Workbooks.open(path_in+fn)
out=path_out+fn
print out
xlBook.SaveAs(out,FileFormat=51)
print n
xlBook.Close(SaveChanges=0)