XlsxWriter write_formula 带日期
XlsxWriter write_formula with date
我正在尝试使用公式将日期值从一个单元格复制到另一个单元格。但是尝试将日期格式添加到 worksheet.write_formula()
会导致 excel 显示以下警报
这是我正在使用的示例代码:
import xlsxwriter
from datetime import date
workbook = xlsxwriter.Workbook("testFile.xlsx")
worksheet = workbook.add_worksheet()
dateFmt = workbook.add_format({'num_format': 'mm/dd/yyyy'})
worksheet.write(0, 0, date(2018, 12, 26),dateFmt)
worksheet.write_formula('B1','=A1', dateFmt, date(2018, 12, 26))
workbook.close()
问题在第9行:
worksheet.write_formula('B1','=A1', dateFmt, date(2018, 12, 26))
此处您为最后一个可选参数 value
提供了 date(2018, 12, 26)
,但这不是 value
可接受的格式,因为 documentation of XlsxWriter 表示
The value
parameter can be a number, a string, a bool or one of the following Excel error codes:
(... skip ...)
@Chof 是正确的,date()
值不被接受为公式值。
相反,您可以使用 XlsxWriter datetime_to_excel_datetime()
实用函数将其转换为 Excel 日期,即数字:
import xlsxwriter
from datetime import date
from xlsxwriter.utility import datetime_to_excel_datetime
workbook = xlsxwriter.Workbook("testFile.xlsx")
worksheet = workbook.add_worksheet()
dateFmt = workbook.add_format({'num_format': 'mm/dd/yyyy'})
worksheet.write(0, 0, date(2018, 12, 26), dateFmt)
excel_date = datetime_to_excel_datetime(date(2018, 12, 26), False, False)
worksheet.write_formula('B1','=A1', dateFmt, excel_date)
workbook.close()
我正在尝试使用公式将日期值从一个单元格复制到另一个单元格。但是尝试将日期格式添加到 worksheet.write_formula()
会导致 excel 显示以下警报
这是我正在使用的示例代码:
import xlsxwriter
from datetime import date
workbook = xlsxwriter.Workbook("testFile.xlsx")
worksheet = workbook.add_worksheet()
dateFmt = workbook.add_format({'num_format': 'mm/dd/yyyy'})
worksheet.write(0, 0, date(2018, 12, 26),dateFmt)
worksheet.write_formula('B1','=A1', dateFmt, date(2018, 12, 26))
workbook.close()
问题在第9行:
worksheet.write_formula('B1','=A1', dateFmt, date(2018, 12, 26))
此处您为最后一个可选参数 value
提供了 date(2018, 12, 26)
,但这不是 value
可接受的格式,因为 documentation of XlsxWriter 表示
The
value
parameter can be a number, a string, a bool or one of the following Excel error codes:(... skip ...)
@Chof 是正确的,date()
值不被接受为公式值。
相反,您可以使用 XlsxWriter datetime_to_excel_datetime()
实用函数将其转换为 Excel 日期,即数字:
import xlsxwriter
from datetime import date
from xlsxwriter.utility import datetime_to_excel_datetime
workbook = xlsxwriter.Workbook("testFile.xlsx")
worksheet = workbook.add_worksheet()
dateFmt = workbook.add_format({'num_format': 'mm/dd/yyyy'})
worksheet.write(0, 0, date(2018, 12, 26), dateFmt)
excel_date = datetime_to_excel_datetime(date(2018, 12, 26), False, False)
worksheet.write_formula('B1','=A1', dateFmt, excel_date)
workbook.close()