Распакуйте файл .xls в python - PullRequest
0 голосов
/ 16 января 2019

Я ищу способ распаковать / разархивировать файлы .xls в python. Открыв файлы Excel с помощью 7-Zip, вы можете увидеть каталоги, которые я хотел бы извлечь.

Я уже пытался переименовать Excel в ".zip" и затем извлечь его

myExcelFile = zipfile.ZipFile("myExcel.zip") 
myExcelFile.extractall()

но бросает

zipfile.BadZipFile: File is not a zip file

.xls в 7-Zip

1 Ответ

0 голосов
/ 16 января 2019

.xls файлы используют формат BIFF. Файлы .xlsx используют Office Open XML, который является форматом zip XML. BIFF - это не заархивированный формат; файлы, использующие этот формат, не распознаются библиотеками zip. - шми

преобразование в .xlsx - это решение

import win32com.client as win32
fname = "full+path+to+xls_file"
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(fname)

wb.SaveAs(fname+"x", FileFormat = 51)    #FileFormat = 51 is for .xlsx extension
wb.Close()                               #FileFormat = 56 is for .xls extension
excel.Application.Quit()
...