পুরানো প্রশ্ন, তবে আমি অনুমান করছি যে কিছু লোক এখনও এটি অনুসন্ধান করে - তাই ...
আমি এই পদ্ধতিটি দুর্দান্ত দেখতে পেয়েছি কারণ সমস্ত ওয়ার্কশিট শীট নাম এবং ডেটাফ্রেম জোড়াগুলির একটি অভিধানে লোড করা হয়েছে, শীটনাম = কোনও বিকল্প নয় p স্প্রেডশিটটি ডিক ফর্ম্যাটে পড়া এবং ডিক থেকে ফিরিয়ে লেখার মধ্যে ওয়ার্কশিট যুক্ত করা, মুছতে বা পরিবর্তন করা সহজ। আমার জন্য xlsxwriter গতি এবং বিন্যাসের দিক থেকে এই নির্দিষ্ট কাজের জন্য ওপেনপেক্সএল এর চেয়ে আরও ভাল কাজ করে।
দ্রষ্টব্য: পান্ডাসের ভবিষ্যতের সংস্করণগুলি (0.21.0+) "শীটনাম" পরামিতিটিকে "শীট_নাম" করে দেবে।
# read a single or multi-sheet excel file
# (returns dict of sheetname(s), dataframe(s))
ws_dict = pd.read_excel(excel_file_path,
sheetname=None)
# all worksheets are accessible as dataframes.
# easy to change a worksheet as a dataframe:
mod_df = ws_dict['existing_worksheet']
# do work on mod_df...then reassign
ws_dict['existing_worksheet'] = mod_df
# add a dataframe to the workbook as a new worksheet with
# ws name, df as dict key, value:
ws_dict['new_worksheet'] = some_other_dataframe
# when done, write dictionary back to excel...
# xlsxwriter honors datetime and date formats
# (only included as example)...
with pd.ExcelWriter(excel_file_path,
engine='xlsxwriter',
datetime_format='yyyy-mm-dd',
date_format='yyyy-mm-dd') as writer:
for ws_name, df_sheet in ws_dict.items():
df_sheet.to_excel(writer, sheet_name=ws_name)
২০১৩ সালের প্রশ্নের উদাহরণের জন্য:
ws_dict = pd.read_excel('Masterfile.xlsx',
sheetname=None)
ws_dict['Main'] = data_filtered[['Diff1', 'Diff2']]
with pd.ExcelWriter('Masterfile.xlsx',
engine='xlsxwriter') as writer:
for ws_name, df_sheet in ws_dict.items():
df_sheet.to_excel(writer, sheet_name=ws_name)