from xlutils.copy import copy 解决:导致Excel文件打不开(Excel无法打开文件,因为文件格式或文件扩展名无效,请确定文件未损坏,并且文件扩展名与文件的格式匹配)
使用python的xlutils.copy模块,进行文件数据写入,保存之后打不开
Excel文件后缀是xlsx,进行操作之后,打不开文件;(解决:把后缀xlsx改成xls就可以打开;或者文件一开始的后缀就是xls)
import xlrd from xlutils.copy import copy file = \'D:/hunter_/demo3.xlsx\' # 文件路径 data = xlrd.open_workbook(file) # 定义一个excel文件的workbook对象 print(\'data的类型为:\', type(data)) data_copy = copy(data) # 获取data的copy对象 print(\'data的copy对象类型为:\', type(data_copy)) sheet_copy = data_copy.get_sheet(0) # 从data_copy对象中获取第一个sheet对象 sheet_copy.write(2, 11, \'测试写入内容\') # 向sheet的某个单元格写入值 data_copy.save(\'demo3.xlsx\') # 写入完成后保存data的copy对象
改成xls文件能正常打开
注意:
xlrd模块0.8版本后不支持以xlsx为后缀名文件,所以使用这个方法的时候,excel要用xls格式的,不然会导致保存的文件无法打开
xlutils最新的2.0版本只能支持copy xls格式的excel文件,如果copy的是xlsx再保存,那么新生成的文件将无法打开。