Table of contents

  1. Python | Adjusting rows and columns of an excel file using openpyxl module
  2. Modify an existing Excel file using Openpyxl in Python
  3. Using Python, write an Excel file with columns copied from another Excel file
  4. Reading an excel file using Python openpyxl module
  5. Python | Writing to an excel file using openpyxl module

Python | Adjusting rows and columns of an excel file using openpyxl module

The openpyxl module allows for manipulation of Excel files using Python. If you want to adjust rows and columns of an Excel file, it provides functionality to do so.

Here's a basic guide on how you can adjust rows and columns in an Excel file using the openpyxl module:

  1. Setup:

    First, you need to install openpyxl:

    pip install openpyxl
    
  2. Loading an Excel File:

    import openpyxl
    
    # Load an existing workbook
    wb = openpyxl.load_workbook('example.xlsx')
    ws = wb.active
    
  3. Adjusting Column Widths:

    # Set the width of column B to 20 units
    ws.column_dimensions['B'].width = 20
    
  4. Adjusting Row Heights:

    # Set the height of row 5 to 50 units
    ws.row_dimensions[5].height = 50
    
  5. Auto-sizing Column Width:

    You can also autosize columns based on their content:

    for column in ws.columns:
        max_length = 0
        column = [cell for cell in column]  # Convert generator object to list
        for cell in column:
            try:  # Necessary to avoid error on empty cells
                if len(str(cell.value)) > max_length:
                    max_length = len(cell.value)
            except:
                pass
        adjusted_width = (max_length + 2)
        ws.column_dimensions[column[0].column_letter].width = adjusted_width
    
  6. Saving the Adjusted Excel File:

    wb.save('example_modified.xlsx')
    

These are just basic operations, and the openpyxl module offers a lot more flexibility and features when it comes to working with Excel files. Always remember to save the workbook after making modifications to see the changes.


Modify an existing Excel file using Openpyxl in Python

You can modify an existing Excel file using the openpyxl library in Python. Here are the steps to do so:

  1. Install openpyxl if you haven't already. You can install it using pip:

    pip install openpyxl
    
  2. Import the openpyxl module in your Python script:

    import openpyxl
    
  3. Load the Excel File:

    You need to open the existing Excel file that you want to modify. You can use the load_workbook function to load the workbook:

    from openpyxl import load_workbook
    
    # Load the Excel file
    wb = load_workbook('existing_file.xlsx')
    
  4. Access a Specific Worksheet:

    If your Excel file contains multiple sheets, you'll need to specify which sheet you want to modify. You can access a specific sheet by name or index:

    # Access a specific worksheet by name
    sheet = wb['Sheet1']
    
    # Or access a specific worksheet by index (0-based)
    sheet = wb.worksheets[0]
    
  5. Modify Data:

    Now, you can modify data in the selected worksheet. For example, to change the value of a cell, you can use the cell's coordinates:

    sheet['A1'] = 'New Value'
    

    You can also iterate through rows and columns to modify multiple cells.

  6. Save the Modified File:

    After making the necessary changes, save the modified workbook back to the Excel file:

    wb.save('modified_file.xlsx')
    
  7. Close the Workbook:

    It's a good practice to close the workbook when you're done:

    wb.close()
    

Here's a complete example that demonstrates how to modify an existing Excel file:

import openpyxl

from openpyxl import load_workbook

# Load the Excel file
wb = load_workbook('existing_file.xlsx')

# Access a specific worksheet by name
sheet = wb['Sheet1']

# Modify data
sheet['A1'] = 'New Value'

# Save the modified file
wb.save('modified_file.xlsx')

# Close the workbook
wb.close()

Make sure to replace 'existing_file.xlsx' with the path to your actual Excel file and adjust the modification logic according to your requirements.


Using Python, write an Excel file with columns copied from another Excel file

To write an Excel file with columns copied from another Excel file in Python, you can use the pandas library to read the data from the source Excel file, manipulate it as needed, and then write it to a new Excel file. Here's a step-by-step guide:

  1. Install the pandas library if you haven't already:

    pip install pandas openpyxl
    
  2. Create a Python script to copy columns from one Excel file to another:

    import pandas as pd
    
    # Load the source Excel file
    source_file_path = 'source.xlsx'  # Replace with your source file path
    df_source = pd.read_excel(source_file_path)
    
    # Specify the columns you want to copy
    columns_to_copy = ['Column1', 'Column2', 'Column3']  # Replace with your column names
    
    # Create a new DataFrame with only the selected columns
    df_new = df_source[columns_to_copy]
    
    # Define the destination Excel file name and sheet name
    destination_file_path = 'destination.xlsx'  # Replace with your destination file path
    
    # Write the selected columns to the destination Excel file
    with pd.ExcelWriter(destination_file_path, engine='openpyxl', mode='w') as writer:
        df_new.to_excel(writer, sheet_name='Sheet1', index=False)
    
    print(f'Copied {len(columns_to_copy)} columns to {destination_file_path}')
    

    In this script:

    • Replace 'source.xlsx' with the path to your source Excel file.
    • Specify the column names you want to copy in the columns_to_copy list.
    • Replace 'destination.xlsx' with the path where you want to save the new Excel file.
  3. Run the script, and it will create a new Excel file (destination.xlsx) with the selected columns copied from the source file.

Make sure that you have both source and destination Excel files in place before running the script, and ensure that the specified columns exist in the source file. You can customize the column names and file paths as needed for your specific use case.


Reading an excel file using Python openpyxl module

The openpyxl module allows you to work with Excel files (both .xlsx and .xlsm formats). With openpyxl, you can read data from Excel spreadsheets as well as write and modify them.

Here's how you can read an Excel file using the openpyxl module:

1. Installation:

First, you need to install the module:

pip install openpyxl

2. Reading Excel File:

Here's a basic example of how to read an Excel file and display its contents:

import openpyxl

# Load the workbook
workbook = openpyxl.load_workbook("sample.xlsx")

# Select the active worksheet (or you can select by name with workbook['SheetName'])
sheet = workbook.active

# Iterating through the rows
for row in sheet.iter_rows():
    for cell in row:
        print(cell.value, end=" ")
    print()

# Alternatively, if you want to access data using cell coordinates
cell_value = sheet["A1"].value
print(f"Value of cell A1: {cell_value}")

# Close the workbook
workbook.close()

3. Using Named Ranges:

If your Excel file has named ranges, you can access the cells in that range using its name:

named_range = workbook.get_named_range("MyNamedRange")
for cell in named_range:
    print(cell.value)

4. Working with Multiple Sheets:

Excel files can have multiple sheets. You can navigate between sheets like this:

# Get names of all sheets in the workbook
sheetnames = workbook.sheetnames
print(sheetnames)

# Access a sheet by name
sheet2 = workbook["Sheet2"]

# Read data from this sheet
for row in sheet2.iter_rows():
    for cell in row:
        print(cell.value, end=" ")
    print()

This is a basic introduction to reading Excel files using openpyxl. The library offers a wide range of functionalities, including styling, creating charts, and more. You can explore the openpyxl documentation to dive deeper into its capabilities.


Python | Writing to an excel file using openpyxl module

The openpyxl module in Python allows for reading from and writing to Excel files in the modern .xlsx format. In this tutorial, we will cover the basics of writing to an Excel file using openpyxl.

Installation

First, you need to install the openpyxl package:

pip install openpyxl

Writing to an Excel File

Here's a step-by-step guide to writing to an Excel file:

  1. Creating a New Workbook and Sheet:

    from openpyxl import Workbook
    
    # Create a new workbook and select the active worksheet
    wb = Workbook()
    ws = wb.active
    
  2. Writing Data:

    There are several ways to write data to the worksheet:

    • Using cell coordinates:

      ws['A1'] = 'Hello'
      ws['B1'] = 'World!'
      
    • Using the cell method:

      ws.cell(row=2, column=1, value='Hello from row 2')
      
    • Appending rows:

      If you want to add data in rows, you can use the append method. It's especially useful if you're adding data in a loop.

      data = [
          ['Name', 'Age', 'Email'],
          ['Alice', 30, '[email protected]'],
          ['Bob', 25, '[email protected]']
      ]
      
      for row in data:
          ws.append(row)
      
  3. Saving the File:

    Once you've written all your data, you can save the workbook to a file:

    wb.save('sample.xlsx')
    
  4. Styling Cells:

    openpyxl also offers features to style your Excel cells, such as font styling, cell borders, and background colors. Here's a simple example:

    from openpyxl.styles import Font, Color
    
    bold_font = Font(bold=True, color=Color('FF0000'))
    ws['A1'].font = bold_font
    
    wb.save('styled_sample.xlsx')
    

    This will make the content of cell A1 bold and red.

Conclusion

openpyxl is a versatile library that provides a range of features to read from and write to Excel files, along with cell styling and formula support. This guide covered the basics of writing data to an Excel file. To delve deeper, refer to the official openpyxl documentation, which provides comprehensive details on its extensive functionalities.


More Python Questions

More C# Questions