Python xlrd: ¿cómo convertir un valor extraído?

Bueno, tengo una pregunta que siento que me han respondido varias veces, por lo que encontré aquí. Sin embargo, como novato, realmente no puedo entender cómo realizar una operación realmente básica.

Aquí está la cosa :

Si alguien puede indicarme qué debo hacer para extraer solo el valor, con el formato que quiero, gracias.

sh.cell (x, y) devuelve una instancia de la clase Cell. Cuando imprime sh.cell (x, y) está devolviendo la función de reproducción de la clase (para que imprima type: value).

Deberías intentarlo:

 cell = sh.cell(x,y) print(cell.value) 

No puedo probar esto ya que no tengo xlrd pero, creo que funcionará dada la documentación: https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html#sheet. Clase celular

También puede simplemente extraer valores utilizando xlrd en lugar de obtener la celda de Excel completa devuelta:

 book = xlrd.open_workbook('example.xls') first_sheet = book.sheet_by_index(0) print first_sheet.row_values(0) 

Obtiene los valores de la primera fila en la primera hoja.

Puede usar cortes con los valores de fila (y de manera similar para columnas). Así que para obtener valores de una hoja entera:

 cells = [] for i in range(first_sheet.nrows): cells.append(first_sheet.row_values(rowx=i,start_colx=0,end_colx=None)) 

Puede haber formas más elegantes de usar xlrd, pero eso me funcionó.

La respuesta correcta a esto es simplemente usar la función Cell.value . Esto devolverá un número o una cadena Unicode dependiendo de lo que contenga la celda.

Esto le dará el valor del contenido de una celda en Excel.

  var = sh.cell(x,y) print var.value 

Pero el tipo de estos datos sigue siendo ‘Unicode’. Para convertir en una cadena (ascii):

  var.value.encode('ascii','ignore')