Я пытаюсь вставить свой запрос данных из базы данных, используя мою собственную библиотеку 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
Наконец, я решил решить эту проблему, создав новую функцию для форматирования даты.
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)
Теперь он решил мою проблему.