Forum Discussion

sarvesh1300's avatar
sarvesh1300
Copper Contributor
Jul 25, 2023

Excel Merge and Center using python pandas

Hello All, 

 

Has anybody tried to use python automation for Excel and know how to use Excel's "Merge and Center" feature using python pandas

1 Reply

  • NikolinoDE's avatar
    NikolinoDE
    Gold Contributor

    sarvesh1300 

    The "Merge and Center" feature in Excel is not directly available in pandas since it's mainly used for visual formatting rather than data manipulation. However, you can achieve similar visual effects by using the openpyxl library, which works with pandas to interact with Excel files.

    Here's an example of how you can use openpyxl and pandas together to achieve the "Merge and Center" effect:

    Python code:

    import pandas as pd
    from openpyxl import load_workbook
    from openpyxl.utils.dataframe import dataframe_to_rows
    
    # Sample data in pandas DataFrame
    data = {
        'Name': ['John', 'Alice', 'Bob'],
        'Age': [30, 25, 28],
        'Location': ['New York', 'London', 'Paris']
    }
    df = pd.DataFrame(data)
    
    # Write the DataFrame to Excel
    file_path = 'output.xlsx'
    df.to_excel(file_path, index=False)
    
    # Load the Excel workbook using openpyxl
    wb = load_workbook(file_path)
    ws = wb.active
    
    # Determine the range of cells to merge and center (e.g., A1 to C1)
    start_row = 1
    end_row = 1
    start_column = 1
    end_column = len(df.columns)
    
    # Merge and center the cells
    merge_range = f"{ws.cell(row=start_row, column=start_column).coordinate}:{ws.cell(row=end_row, column=end_column).coordinate}"
    ws.merge_cells(merge_range)
    
    # Save the changes
    wb.save(file_path)

    In this example, we first create a pandas DataFrame, write it to an Excel file using df.to_excel, and then use openpyxl to load the Excel file, merge and center the specified range of cells (in this case, the header row), and save the changes back to the file.

    Please note that openpyxl operates directly on the Excel file and does not maintain the DataFrame's formatting. If you need more advanced formatting or want to manipulate the data and formatting together, you may consider using other libraries like xlsxwriter or xlwings.

    Always make sure to have a backup of your Excel file before performing any automation to avoid data loss. Since no one has replied to this for over a day and more, I entered your question in various AI's. The text, steps and the Code are the result of the compilation of different AI's.

     

    My answers are voluntary and without guarantee!

     

    Hope this will help you.

Resources