[Python] Como formatar o número de uma célula no excel para o tipo horas através do OpenPyxl...

Discussão em 'Python' iniciado por Stack, Outubro 4, 2024.

  1. Stack

    Stack Membro Participativo

    Opa, tudo bem com vocês?

    Então, estou desenvolvendo uma API teste em Python que quando é chamada, tem de me retornar um arquivo em Excel com dados pré-definidos. Um desses dados é uma variável de hora que deve estar formatada no respectivo formato no arquivo Excel, como nesse exemplo:

    [​IMG]

    Porém, mesmo formatando a célula por meio do método ".number_format", o dado ainda se apresenta como personalizado como podem ver abaixo.

    [​IMG]

    O código que fiz segue abaixo:

    from openpyxl import Workbook
    from openpyxl.writer.excel import save_virtual_workbook
    import datetime
    from src.functions.errors import return_error

    class classRelatorioExcel:

    def execute(self, req, resp, filters, tabs, identifier):
    try:
    excel_filename = 'Relatorio.xlsx'

    wb = Workbook()
    ws = wb.active
    ws.title = 'teste'

    ws['A1'] = datetime.datetime.strptime('2020-02-10', '%Y-%m-%d')
    ws['A1'].number_format = 'dd/mm/yyyy'

    ws['B1'] = datetime.time(21, 43, 50)
    ws['B1'].number_format = 'hh:mm:ss'

    wb.save(filename=excel_filename)

    output = save_virtual_workbook(wb)

    resp.set_header("Content-Disposition", "attachment; filename=\"%s\"" % excel_filename)
    resp.data = output
    except Exception as error:
    print(f'error: {error}')
    return return_error(resp, 'Erro ao tentar gerar relatório.', 500)


    Tem alguma maneira de formatar a célula para que fique no formato de horas ao invés do personalizado?

    Continue reading...

Compartilhe esta Página