Привет, ребята. У меня есть программа, которая создает и сохраняет файл xlsx, затем открывает его и конвертирует в pdf ... но затем я хочу удалить исходный файл xlsx.
- создает оба файла в правильном каталоге.
- Однако он не удаляет xlsx, и я не могу удалить его вручную, так как он говорит, что файл все еще открыт
wb.save(NEW_RECEIPT_PATH + new_file_name_xlsx)
#this should turn the xlsx into a pdf
xlApp = client.Dispatch("Excel.Application")
books = xlApp.Workbooks.Open(NEW_RECEIPT_PATH + new_file_name_xlsx)
ws2 = books.Worksheets[0]
ws2.Visible = 1
save_the_pdf = NEW_RECEIPT_PATH + new_file_name_pdf
ws2.ExportAsFixedFormat(0,save_the_pdf)
#this removes the xlsx file
os.remove(NEW_RECEIPT_PATH + new_file_name_xlsx)
Я догадываюсь, что я не использовал .close () в нужном месте и что он оставил файл Excel открытым. Я пытался ...
wb.save(NEW_RECEIPT_PATH + new_file_name_xlsx)
wb.close()
#this should turn the xlsx into a pdf
xlApp = client.Dispatch("Excel.Application")
books = xlApp.Workbooks.Open(NEW_RECEIPT_PATH + new_file_name_xlsx)
ws2 = books.Worksheets[0]
ws2.Visible = 1
save_the_pdf = NEW_RECEIPT_PATH + new_file_name_pdf
ws2.ExportAsFixedFormat(0,save_the_pdf)
#this removes the xlsx file
os.remove(NEW_RECEIPT_PATH + new_file_name_xlsx)
безрезультатно. Будем благодарны за любые подсказки.
-update-
Я определил проблему в этих строках ...
#this should turn the xlsx into a pdf
xlApp = client.Dispatch("Excel.Application")
books = xlApp.Workbooks.Open(NEW_RECEIPT_PATH + new_file_name_xlsx)
ws2 = books.Worksheets[0]
ws2.Visible = 1
save_the_pdf = NEW_RECEIPT_PATH + new_file_name_pdf
ws2.ExportAsFixedFormat(0,save_the_pdf)
Файл xlsx остается открытым, и я не позволю мне удалить его с помощью кода ... то же самое с удалением файла xlsx вручную. Мне нужно дважды щелкнуть файл, чтобы открыть его, а затем закрыть, прежде чем я смогу удалить.
Как закрыть файл xlsx в конце этого кода?