L oop через список для создания нескольких файлов Excel - PullRequest
0 голосов
/ 31 марта 2020

Привет. Я пытаюсь пролистать список для создания нескольких файлов Excel (не листов). Мне удалось создать отдельный фрейм данных в приведенных ниже кодах, но мне было интересно, есть ли у кого-нибудь пример создания нескольких файлов Excel с помощью циклического перемещения по списку и создания нескольких файлов Excel с каждым названием компании.

from datetime import date, time
import xlsxwriter
import pandas as pd
from openpyxl import load_workbook
import openpyxl

#create a list of company - this list contains company names
dfList  = list(set(df['Company']))

#create a separate DF by each company
for i, row in enumerate(dfList):
    dfName = dfNames[i]
    dfNew = df1[df1['Company'] == row]
    globals()[dfName] = dfNew   

#create excel files, format cells, and export dataframe in each excel files
for i, row in enumerate(dfList):
    workbook = xlsxwriter.Workbook('C:/Users/user/row.xlsx')
    worksheet = workbook.add_worksheet()

    worksheet.write('C1', 'Work Location')
    worksheet.data_validation('C2:C100', {'validate': 'list','source':['WFH', 'Office']})
    workbook.close()

    #Update excel file created above with dataframe data
    book = load_workbook('C:/Users/user/row.xlsx')
    writer = pandas.ExcelWriter('C:/Users/user/row.xlsx', engine='openpyxl') 
    writer.book = book

    writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

    row.to_excel(writer, "Sheet1", columns=['Company','Sales'])

    writer.save()

1 Ответ

0 голосов
/ 01 апреля 2020

Я нашел ответ, и это сработало для меня

from datetime import date, time
import xlsxwriter
import pandas as pd
import os
from openpyxl import load_workbook
import openpyxl

#create a list of company - this list contains company names
dfList  = list(set(df['Company']))

#create a separate DF by each company
for i, row in enumerate(dfList):
    dfName = dfNames[i]
    dfNew = df1[df1['Company'] == row]
    globals()[dfName] = dfNew   

#create excel files, format cells, and export dataframe in each excel files
directory = r'C:/Users/user'
for i, row in enumerate(dfList):
    workbook = xlsxwriter.Workbook(os.path.join(directory, row))
    worksheet = workbook.add_worksheet()

    worksheet.write('C1', 'Work Location')
    worksheet.data_validation('C2:C100', {'validate': 'list','source':['WFH', 'Office']})
    workbook.close()

    #Update excel file created above with dataframe data
    book = load_workbook(os.path.join(directory, row))
    writer = pandas.ExcelWriter(os.path.join(directory, row), engine='openpyxl') 
    writer.book = book

    writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

    row.to_excel(writer, "Sheet1", columns=['Company','Sales'])

    writer.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...