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