У меня есть файл Excel, содержащий около 400 рабочих листов, 375 из которых мне нужно сохранить в виде файлов CSV. Я пробовал решение VBA, но Excel имеет проблемы только с открытием этой книги.Python: Чтение больших листов Excel с использованием Openpyxl
Я создал скрипт python для этого. Тем не менее, он быстро потребляет всю доступную память и почти останавливает работу после 25 листов. Есть ли у кого-нибудь предложение о том, как я могу улучшить этот код?
import openpyxl
import csv
import time
print(time.ctime())
importedfile = openpyxl.load_workbook(filename = "C:/Users/User/Desktop/Giant Workbook.xlsm", data_only = True, keep_vba = False)
tabnames = importedfile.get_sheet_names()
substring = "Keyword"
for num in tabnames:
if num.find(substring) > -1:
sheet=importedfile.get_sheet_by_name(num)
name = "C:/Users/User/Desktop/Test/" + num + ".csv"
with open(name, 'w', newline='') as file:
savefile = csv.writer(file)
for i in sheet.rows:
savefile.writerow([cell.value for cell in i])
file.close()
print(time.ctime())
Любая помощь будет оценена по достоинству.
Благодаря
EDIT: Я использую окна 7 и питон 3.4.3. Я также открыт для решений в R, VBA или SPSS.
Вам не нужен файл.close() после a с блоком – joeButler