Używam pand, aby pisać do pliku Excela w następujący sposób:
import pandas
writer = pandas.ExcelWriter('Masterfile.xlsx')
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()
Masterfile.xlsx zawiera już kilka różnych zakładek. Jednak nie zawiera jeszcze „Main”.
Pandy poprawnie zapisują do arkusza "Głównego", niestety kasują też wszystkie inne zakładki.
ExcelReader
Odpowiedzi:
Pandas Docs twierdzi, że używa openpyxl dla plików xlsx. Szybkie przejrzenie kodu
ExcelWriter
daje wskazówkę, że może się udać coś takiego:źródło
openpyxl
i podać wystarczającą ilość szczegółów: jakie masz formuły, w jaki sposób dane są aktualizowane, w jaki sposób hamuje formuły. Teraz po prostu nie mogę pomóc, zbyt wiele rzeczy nie wiem.Oto funkcja pomocnicza:
UWAGA: dla pand <0.21.0 wymienić
sheet_name
zsheetname
!Przykłady użycia:
źródło
W przypadku
openpyxl
wersji2.4.0
ipandas
wersji0.19.2
proces, który wymyślił @ski, staje się nieco prostszy:źródło
Począwszy od pandy 0.24, możesz to uprościć za pomocą
mode
argumentu słowa kluczowegoExcelWriter
:źródło
mode = 'a'
dodaje więcej arkuszy, ale co jeśli chcę nadpisać dane w istniejących arkuszach?Stare pytanie, ale zgaduję, że niektórzy wciąż tego szukają - więc ...
Uważam tę metodę za fajną, ponieważ wszystkie arkusze są ładowane do słownika par nazw arkuszy i par ramek danych, utworzonych przez pandy z opcją Sheetname = None. Dodawanie, usuwanie lub modyfikowanie arkuszy roboczych między odczytem arkusza kalkulacyjnego w formacie dykta a zapisaniem go z powrotem z dyktowania jest proste. Dla mnie xlsxwriter działa lepiej niż openpyxl w tym konkretnym zadaniu pod względem szybkości i formatu.
Uwaga: przyszłe wersje pand (0.21.0+) zmienią parametr „nazwa arkusza” na „nazwa_arkusza”.
Na przykład w pytaniu z 2013 roku:
źródło
Wiem, że to starszy wątek, ale jest to pierwsza pozycja, którą znajdziesz podczas wyszukiwania, a powyższe rozwiązania nie działają, jeśli musisz zachować wykresy w skoroszycie, który już utworzyłeś. W takim przypadku xlwings jest lepszą opcją - pozwala pisać do książki Excela i zachowuje wykresy / dane wykresów.
prosty przykład:
źródło
W pandach 0.24 jest lepsze rozwiązanie:
przed:
po:
więc ulepsz teraz swoje pandy:
źródło
XslxWriter
opcja nie działa .engine=openpyxl
ponieważ po prostu doda nowy arkusz o nazwiethe only worksheet1
Działa to doskonale, tylko że formatowanie głównego pliku (pliku, do którego dodajemy nowy arkusz) zostaje utracone.
źródło
Nadzieja "keep_date_col" ci pomoże
źródło
źródło
Metoda:
Stosowanie:
źródło