Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2020, 12:01   #1
1way2god
Пользователь
 
Регистрация: 28.01.2020
Сообщений: 13
По умолчанию Скрипт "ломает" файл эксель после записи информации

Код:
import xlwt
import pandas as pd
import win32com.client as wincl
from pandas import ExcelWriter
from pandas import ExcelFile
import subprocess
from tkinter.filedialog import askopenfilename
import pymysql.cursors
import csv  
from openpyxl import load_workbook
df = pd.read_sql(sql,connection)
        book = load_workbook('C:\\Users\\username\\Desktop\\БедныйЙорик.xlsm')
        writer = pd.ExcelWriter('C:\\Users\\username\\Desktop\\БедныйЙорик.xlsm', engine='openpyxl')
        writer.book = book
        writer.sheets = {ws.title: ws for ws in book.worksheets}
        for sheetname in writer.sheets:
            df.to_excel(writer,sheet_name="Лист1", startrow=0, index = False, header= True)
        writer.save()    
        
finally:
    connection.close()
После записи информации в файл эксель, он перестает открываться, говорит, что файл поврежден.
Если делаю запись в файл с расширением xlsx(без поддержки макросов), то все отлично работает. Что нужно сделать, чтобы код работал с файлом xlsm?
1way2god вне форума Ответить с цитированием
Старый 19.07.2022, 21:40   #2
r345dts
Новичок
Джуниор
 
Регистрация: 24.08.2020
Сообщений: 1
По умолчанию

Вдруг кому-нибудь пригодится - сам тоже искал ответ.
Файл открываю так:
Код:
wb = openpyxl.load_workbook(full_file_path, keep_vba=True)
После такого открытия и последующего охранения нормально открывается как .xlsm
r345dts вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический запуск макроса после закрытия окна "Параметры Excel" кнопкой "ОК" aie.fineff Microsoft Office Excel 4 12.07.2019 16:30
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
Ввести строку и после каждого символа "q" ставить "**" karamzin Паскаль, Turbo Pascal, PascalABC.NET 2 25.11.2012 02:57
Возможно, кто-то "ломает" пароль от моего почтового ящика на яндексе Вадим Мошев Безопасность, Шифрование 4 18.03.2012 08:22