1. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[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 às 07:32.

  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