¿Cómo reemplazar una palabra en Excel usando Python?

Excel es una herramienta muy útil donde podemos tener los datos en formato de filas y columnas. Podemos decir que antes de que existiera la base de datos, Excel jugó un papel importante en el almacenamiento de datos. Hoy en día, utilizando la entrada de Excel, se realizan muchos procesamientos por lotes. Puede existir el requisito de reemplazar el texto en la hoja de Excel, ya que Excel siempre contiene datos importantes. En este artículo, veamos cómo reemplazar una palabra en Excel usando Python

Métodos y enfoques utilizados

Aquí veamos los paquetes viaxlwt y xlrd y los paquetes openpyxl para reemplazar una palabra en Excel usando Python

Método 1: xlwt y xlrd

Para instalar estos paquetes, escriba el siguiente comando en la terminal.

# for writing into excel
pip install xlwt

# for reading
pip install xlrd 

El siguiente código tiene dos libros de Excel. Uno para leer y obtener el texto. Otro para escribir el texto reemplazado. Podemos hacer «n» número de reemplazos. La columna debe tener exactamente el texto buscado especificado que debe reemplazarse y, una vez encontrado, se reemplaza y se escribe en un nuevo libro de trabajo. 

Ejemplo:

Archivo de Excel utilizado – 

Python3

import xlwt
import xlrd
  
# Excel file can be in your local drive 
# and if not, specify the exact path
sampleWorkbook = xlrd.open_workbook('sampleexcel.xlsx')
originalSheet = sampleWorkbook.sheet_by_name('Test')
  
newWorkbookForTextReplacement = xlwt.Workbook()
newsheetForTextReplacement = newWorkbookForTextReplacement.add_sheet('Test')
  
replacementTextKeyPairs = {'Apple': 'Kiwi',
                           'Oranges': 'Lemons',
                           'Grapes': 'Papayas'}
  
# iterate over the rows of your sheet
# ncols - number of columns in the 
# selected sheet, here it is for 'Test' sheet
# nrows - number of rows in the selected
# sheet, here it is for 'Test' sheet
for i in range(originalSheet.nrows):
    print(i)
  
    # Get the data of each column
    data = [originalSheet.cell_value(i, col)
            for col in range(originalSheet.ncols)]
  
    for index, value in enumerate(data):
  
        # If any key present in replacementTextKeyPairs 
        # matches with excel column value, replace the
        # column with the value
        if value in replacementTextKeyPairs.keys():
            newsheetForTextReplacement.write(
                i, index, str(replacementTextKeyPairs.get(value)))
        else:
            newsheetForTextReplacement.write(i, index, value)
  
# Replaced text will be present in the new workbook
# with name sampleexcelwithreplacedtext.xls
newWorkbookForTextReplacement.save('sampleexcelwithreplacedtext.xls')

Producción:

Método 2: openpyxl 

Para instalar este módulo, escriba el siguiente comando en la terminal.

pip install openpyxl

La ventaja del paquete openpyxl es que puede usarse para leer y escribir archivos xlsx/xlsm/xltx/xltm. El siguiente código usa openpyxl para leer y obtener el texto de un archivo de Excel, reemplazando el texto y escribiendo en otro archivo de Excel. 

Ejemplo:

Archivo de Excel utilizado – 

Python3

# Reading and writing in excel can be done by single module
import openpyxl
from openpyxl.utils.cell import get_column_letter
  
workbook = openpyxl.load_workbook('sampleexcelopenpyxl.xlsx')
workbook.sheetnames
worksheet = workbook["Test"]
  
# Number of rows
number_of_rows = worksheet.max_row
  
# Number of columns
number_of_columns = worksheet.max_column
  
replacementTextKeyPairs = {'1': 'One', '2': 'Two', '3': 'Three'}
  
# Iterate over the columns and rows, search
# for the text and replace
for i in range(number_of_columns):
    for k in range(number_of_rows):
          
        cellValue = str(worksheet[get_column_letter(i+1)+str(k+1)].value)
          
        for key in replacementTextKeyPairs.keys():
              
            if str(cellValue) == key:
                newCellValue = replacementTextKeyPairs.get(key)
                worksheet[get_column_letter(i+1)+str(k+1)] = str(newCellValue)
  
workbook.save('sampleexcelwithreplacedtextusingopenpyxl.xlsx')

Producción:

Nota: openpyxl no es compatible con el antiguo formato de archivo .xls, use xlrd para leer este archivo o conviértalo al formato de archivo .xlsx más reciente

Publicación traducida automáticamente

Artículo escrito por priyarajtt y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *