Создание файла Master Excel из вывода динамического c CSV с использованием Python - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь создать файл Excel "Master" из CSV-хранилища, который будет создаваться и перезаписываться каждые несколько часов. Приведенный ниже код создает новый файл Excel и записывает содержимое из «combo1.csv» в «master.xlsx». Однако всякий раз, когда файл combo1 обновляется, код в основном перезаписывает содержимое файла «master.xlsx». Мне нужно добавить содержимое из "combo1" в "Master" без заголовков, вставляемых каждый раз. Может кто-то помочь мне с этим?

import pandas as pd

writer = pd.ExcelWriter('master.xlsx', engine='xlsxwriter')
df = pd.read_csv('combo1.csv')
df.to_excel(writer, sheet_name='sheetname')
writer.save()

Ответы [ 3 ]

2 голосов
/ 19 февраля 2020

Сначала прочитайте файл Excel, а затем необходимо выполнить приведенный ниже метод для добавления строк.

import pandas as pd
from xlsxwriter import load_workbook

df = pd.DataFrame({'Name': ['abc','def','xyz','ysv'],
                   'Age': [08,45,32,26]})
writer = pd.ExcelWriter('master.xlsx', engine='xlsxwriter')

writer.book = load_workbook('Master.xlsx')

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

reader = pd.read_excel(r'master.xlsx')

df.to_excel(writer,index=False,header=False,startrow=len(reader)+1)

writer.close()
2 голосов
/ 19 февраля 2020

См. Добавление данных в конце листа Excel в этой статье: Использование Python Pandas с листами Excel

(Кредит на Нэнси Трамбадия для статьи)

В основном вам нужно сначала прочитать файл Excel и найти количество строк, прежде чем отправлять новые данные.

reader = pd.read_excel(r'master.xlsx')
df.to_excel(writer,index=False,header=False,startrow=len(reader)+1)
1 голос
/ 19 февраля 2020
import pandas as pd
from openpyxl import load_workbook

# new dataframe with same columns
df = pd.read_csv('combo.csv')
writer = pd.ExcelWriter('master.xlsx', engine='openpyxl')
# try to open an existing workbook
writer.book = load_workbook('master.xlsx')
# copy existing sheets
writer.sheets = dict((ws.title, ws) for ws in writer.book.worksheets)
# read existing file
reader = pd.read_excel(r'master.xlsx')
# write out the new sheet
df.to_excel(writer, index=False, header=False, startrow=len(reader) + 1)

writer.close()

Обратите внимание, что мастер должен быть создан до запуска скрипта

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