Я пытаюсь обработать некоторые файлы, которые должны были быть файлами xls, но оказывается, что они являются чем-то другим (согласно некоторой помощи, которую я получил на плате python-excel, это файлы веб-архива или (веб-страница с одним файлом ( * .mht, * .mhtml)). Я могу открыть файлы в Excel, но я получаю сообщение, которое должно быть отклонено, прежде чем я смогу двигаться вперед. Сообщение: Файл, который вы пытаетесь открыть filename.xls, находится в другой формат, чем указано в расширении файла. Прежде чем открывать файл, убедитесь, что файл не создан и находится из надежного источника. Хотите открыть файл?
Если я нажму да, файл откроется и будет выглядеть как книга Excel. Некоторые имена листов усекаются. Конечно же, когда я нажимаю «Сохранить», в качестве формата по умолчанию отображается веб-страница с одним файлом.
Теперь, если я сохраню и выберу формат Excel 97-2003, переименую его в новое имя и нажму кнопку «Сохранить», после чего файл откроется в Excel без вопросов.
Я пытался понять, как написать код для открытия и сохранить их как настоящие xls-файлы, чтобы мне не нужно было открывать кого-то в оффшорах и сохранять их.
Я подошел очень близко, но застрял на одном последнем вопросе, когда я сохраняю его с новым форматом файла, я получаю окно с предупреждением, предупреждающее о некоторой незначительной потере верности. Я не могу понять, как подавить это и принять эту потерю верности?
Вот сшитые кусочки, которые, кажется, работают
import win32com.client
xl=win32com.client.Dispatch('Excel.Application')
xl.visible=0 # I have noticed that if I don't set visible to 0 I can't get any response
srce=xl.Workbooks.Open(r'c:\testdd.xls') # testdd is my file that is evidently really not an excel file
srce.SaveAs(r'c:\newtttxt2.xls',FileFormat=1) # this is when the message box pops up
Я нашел ссылку на атрибут, называемый CheckCompatibility. Кажется, это атрибут объекта книги. И я думаю, я не могу использовать его в форме
srce.CheckCompatibility='False'
потому что я не сохраняю объект srce, я сохраняю некоторый тип его копии ??
Вернуться к минам.
Ложь Надеюсь, что я не добился успеха, когда попробовал srce.CheckCompatibility = 'False'
Извините за путаницу
Ну, теперь я запутался даже больше, чем обычно, это поведение странно
srce=xl.Workbooks.Open(r'c:\testdd.xls') # I open the file
srce.CheckCompatibility='False' # I try to assign the attribute to srce
srce.SaveAs(r'c:\newtttxt7865.xls',FileFormat=1) #when I SaveAs the compatibility dialog asks if I want to continue
>>> 'asked' # I put this here to reinforce the fact that I was asked
'asked'
>>> srce.CheckCompatibility='False' # again I try to assign the attribute
>>> srce.SaveAs(r'c:\newtttxt78653.xls',FileFormat=1) # I try to save it again
>>> 'did not ask' #it saves this time w/o asking
'did not ask'
>>>
Интересно, добавлю ли я файл make.py, как описано в справке com, если это будет решено? Я начинаю задаваться вопросом, заключается ли проблема в том, что srce еще не знает, какие атрибуты он имеет, он принимает назначение, но не вводится в действие, пока некоторые не произойдут? Если я звучу глупо, это нормально.