我有以下抛出异常的 Python 代码,我很难理解我做错了什么:
import xlsxwriter
import datetime
date = datetime.date.today()
workbook = xlsxwriter.Workbook('datetime.xlsx')
date_format = workbook.add_format({'num_format': 'dd mm yyyy'})
worksheet = workbook.add_worksheet()
worksheet.write_datetime(0, 0, date, date_format)
workbook.close()
异常发生在
workbook.close()
,是TypeError: must be real number, not datetime.date
。堆栈跟踪如下:
Traceback (most recent call last):
File "scratch_4.py", line 10, in <module>
workbook.close()
File ".venv\Lib\site-packages\xlsxwriter\workbook.py", line 351, in close
self._store_workbook()
File ".venv\Lib\site-packages\xlsxwriter\workbook.py", line 746, in _store_workbook
xml_files = packager._create_package()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".venv\Lib\site-packages\xlsxwriter\packager.py", line 137, in _create_package
self._write_worksheet_files()
File ".venv\Lib\site-packages\xlsxwriter\packager.py", line 196, in _write_worksheet_files
worksheet._assemble_xml_file()
File ".venv\Lib\site-packages\xlsxwriter\worksheet.py", line 4645, in _assemble_xml_file
self._write_sheet_data()
File ".venv\Lib\site-packages\xlsxwriter\worksheet.py", line 6389, in _write_sheet_data
self._write_rows()
File ".venv\Lib\site-packages\xlsxwriter\worksheet.py", line 6589, in _write_rows
self._write_cell(row_num, col_num, col_ref)
File ".venv\Lib\site-packages\xlsxwriter\worksheet.py", line 6765, in _write_cell
self._xml_number_element(cell.number, attributes)
File ".venv\Lib\site-packages\xlsxwriter\xmlwriter.py", line 134, in _xml_number_element
self.fh.write("""<c%s><v>%.16G</v></c>""" % (attr, number))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
TypeError: must be real number, not datetime.date
我尝试了多种不同的方法,但都失败并出现相同的异常。
事实证明,我运行代码的虚拟环境已损坏。