генерировать данные из базы данных в Excel с помощью Python, но дата и время в Excel не правильный формат

1

Я пытаюсь вставить свой запрос данных из базы данных, используя мою собственную библиотеку python. Мои проблемы возникают после того, как я создал свой файл excel, но это не правильный формат, как дата. потому что excel не является форматом auotomatic, пока я не дважды щелкнул по Cell. Так или иначе, чтобы решить эту проблему?

Здесь мой код python

from openpyxl import Workbook, load_workbook
from contextlib import closing

    def make_excel_file(file_name):
        with closing(Workbook()) as wb:
            wb.save(file_name)

    def add_value(file_name, cell_cords, value):
        with closing(load_workbook(filename=file_name)) as wb:
            ws = wb.active
            ws[cell_cords] = value
            wb.save(file_name)

и здесь Robotframework

         ${d}=    Get Current Date    result_format=%m/%d/%Y
         ${j}=   set variable   6
         ${n}=   set variable   1
         : FOR    ${INDEX}    IN RANGE    0      ${indexlenght}

            \    ${tmaccount}=    Get from list    ${tm_acc_db}    ${INDEX}
            \    ${tmcustname}=    Get from list    ${tm_custName_db}    ${INDEX}
            \    ${tmcustphone}=    Get from list    ${tm_custPhone_db}    ${INDEX}
            \    ${salary}=    Get from list    ${tm_salary_excel}    ${INDEX}
            \    Add Value  test.xlsx  A${j}     ${n}
            \    Add Value  test.xlsx  B${j}    ${tmcustname}
            \    Add Value  test.xlsx  C${j}    ${tmaccount}
            \    Add Value  test.xlsx  D${j}    ${tmcustphone}
            \    Add Value  test.xlsx  E${j}    ${salary}
            \    Add Value  test.xlsx  F${j}    ${currency_com}
            \    Add Value  test.xlsx  G${j}     ${d}
            \    ${j}=      evaluate   ${j} + 1
            \    ${n}=      evaluate   ${n} + 1

Изображение 174551

Теги:
excel
robotframework

1 ответ

0
Лучший ответ

Наконец, я решил решить эту проблему, создав новую функцию для форматирования даты.

from openpyxl import Workbook, load_workbook
from openpyxl.styles import NamedStyle
import datetime
from contextlib import closing
    def add_value_dateformat(file_name, cell_cords, value):
        with closing(load_workbook(filename=file_name)) as wb:
            ws = wb.active
            valuec = datetime.datetime.strptime(value, "%m/%d/%Y")
            cell = ws[cell_cords]
            cell.value = valuec
            cell.number_format = 'm/DD/YYYY'
            wb.save(file_name)          

Теперь он решил мою проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню