Панды превосходно пишут; файл заблокирован и поврежден

#python #excel #pandas

Вопрос:

У меня есть следующий код:

 options = {}
options['strings_to_formulas'] = False #Tried to fix 'problem with some content, want to repair' - no succes
options['strings_to_urls'] = False #Tried to fix 'problem with some content, want to repair' - no succes
writer = pandas.ExcelWriter(str(inputfolder)   '/all_results_'   str(sequence_id)   '.xlsx', options=options) 

for file in csv_file_list:
    file_panda = pandas.read_csv(file, sep = 't', header = None, dtype=str) #dtype=str; Tried to fix 'problem with some content, want to repair' - no succes
    file_panda.to_excel(writer, Path(file).stem, header=False, index=False)

writer.save()
writer.close()
 

Но я продолжаю получать ошибку в Excel с тем, что она не может открыться без исправления некоторых вещей. Затем в журнале ремонта говорится Repaired Records: Worksheet properties from /xl/workbook.xml part (Workbook) . Единственное, что я могу себе представить, это то, что есть довольно много ячеек, которые начинаются с » «или» -«, что не нравится Excel, но поиск в Интернете этой проблемы мне пока не помог..

Другая проблема, с которой я продолжаю сталкиваться, заключается в том, что, когда я восстанавливаю и продолжаю открывать файл excel, он продолжает говорить, что он заблокирован для редактирования «другим пользователем», и я могу открыть его только для чтения. Похоже, файл все еще «используется» моим сценарием каким-то образом, даже несмотря на то, что я закрыл его и даже заставил освободить дескрипторы?

У кого-нибудь есть какие-либо идеи, как решить эти проблемы?

Заранее спасибо!

Комментарии:

1. всегда помещайте полное сообщение об ошибке (начинающееся со слова «Обратная связь») в вопрос (не комментарий) в виде текста (не скриншот, не ссылка на внешний портал). Есть и другая полезная информация.

2. Спасибо, но ошибок при отслеживании нет. Код выполняется идеально. Ошибки возникают, когда я открываю excel, и это просто общие всплывающие сообщения, генерируемые excel, когда файл поврежден (подробная информация о журнале восстановления приведена в моем сообщении) и когда файл недоступен, потому что он открыт где-то в другом месте

3. Я не знаю, следует ли вам использовать writer.save() , потому to_excel() что вы уже должны сохранить его.

Ответ №1:

Попробовав еще немного, я обнаружил, что мои автоматически сгенерированные имена листов, основанные на именах файлов, превысили 31 лимит, установленный Excel. Это вызывает много проблем.