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''