tutorial max_row libreria iter_cols combine python openpyxl

python - max_row - openpyxl tutorial



Formato de número de configuración de Openpyxl (2)

Podría complacer a alguien mostrar un ejemplo de cómo aplicar el formato de número a la celda. Por ejemplo, necesito un formato científico, la forma sería como ''2.45E + 05'', pero no pude encontrar la manera de hacerlo en openpyxl.

Lo intenté de varias maneras, pero todos están informando errores al guardar el libro.

por ejemplo:

import openpyxl as oxl wb = oxl.Workbook() ws = wb.create_sheet(title=''testSheet'') _cell = ws.cell(''A1'') _cell.style.number_format = ''0.00E+00''

o esto (aquí estoy tratando de usar algunos de los formatos de números predefinidos, también he visto que hay un formato de ingeniería en los incorporados pero no sé cómo acceder a él:

nf = oxl.style.NumberFormat.FORMAT_NUMBER_00 _cell.style.number_format = nf

En ambos casos me sale el mismo error:

C:/Python27/openpyxl/cell.pyc in is_date(self) 408 """ 409 return (self.has_style --> 410 and self.style.number_format.is_date_format() 411 and isinstance(self._value, NUMERIC_TYPES)) AttributeError: ''str'' object has no attribute ''is_date_format''

He visto esta pregunta: establecer estilos en Openpyxl pero no ayuda porque no tengo que cambiar ninguna otra configuración de formato.


Nota: esta respuesta funcionó con versiones anteriores de openpyxl, pero no funciona con openpyxl 2.0

Asi es como se hace:

_cell.style.number_format.format_code = ''0.00E+00''


Esta respuesta funciona con openpyxl 2.0. (La respuesta previamente aceptada no lo hace.)

El number_format se puede cambiar directamente.

El ejemplo dado se convierte en:

from openpyxl import Workbook wb = Workbook() ws = wb.create_sheet(title=''testSheet'') _cell = ws.cell(''A1'') _cell.number_format = ''0.00E+00''