多个df写入同一个excel不同sheet

83 阅读1分钟
import pandas as pd

def pd_to_excel(data_dict: dict, dir_: str) -> bool:
    """
    将多个DataFrame写入Excel文件的不同工作表

    Args:
        data_dict (dict): 包含要写入的数据的字典,键为工作表名称,值为DataFrame
        dir_ (str): Excel文件路径

    Returns:
        bool: 写入成功返回True,否则返回False
    """
    engine_kwargs = {'options': {'nan_inf_to_errors': True, 'strings_to_urls': False}}
    
    # 检查data_dict是否为空
    if data_dict:
        with pd.ExcelWriter(dir_, engine='xlsxwriter', engine_kwargs=engine_kwargs) as writer:
            for sheet_name, data in data_dict.items():
                if len(data) > 0:
                    data.to_excel(writer, index=False, sheet_name=sheet_name)
                else:
                    print(f"DataFrame for sheet '{sheet_name}' is empty. Skipping.")
        return True
    else:
        print("No data provided to write to Excel.")
        return False

# 示例用法
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]})

data_dict = {
    'Sheet1': df1,
    'Sheet2': df2
}

excel_file = 'output.xlsx'
pd_to_excel(data_dict, excel_file)