保存工作簿时出现Openpyxl datetime错误

杰西

我正在尝试使用openpyxl模块写入* .xlsx文件。我已经在Ubuntu 14.04上使用pip install下载了它。

我正在加载一个* .xlsx文件,该文件是我以前在Excel中制作的材料明细表模板,可以在Libre Office和Kingsoft Office中很好地打开它。我的意图是加载它,并用一些字符串填充某些单元格。

我的函数如下所示:

def writeBOM(parts, projectname):
    '''
    Take the ordered and grouped part info and
    write it to a standard BOM and save it
    '''
    StandardBOMFILE = '/home/jesse/Digi-Parser/SampleFiles/StandardBOM.xlsx'

    wb = load_workbook(filename=StandardBOMFILE)
    sheet = wb.get_sheet_by_name('BOM')

    r = 8
    # Fill BOM
    for i, part in enumerate(parts):
       sheet.cell(row = r+i,column = 1).value = part.designator
       sheet.cell(row = r+i,column = 2).value = part.evalue + ' ' + part.package
       sheet.cell(row = r+i, column = 3).value = part.qty
    projectBOMname = projectname + 'BOM' + '.xlsx'
    wb.save(projectBOMname)

我输入到单元格中的值只是字符串。

但是,当我运行此命令时,出现以下错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc in execfile(fname, *where)
    202             else:
    203                 filename = fname
--> 204             __builtin__.execfile(filename, *where)

/home/jesse/Digi-Parser/SheetOrganizer.py in <module>()
    232         prjpath = '/home/jesse/Digi-Parser/SampleFiles/'
    233         prjname = 'Water Use Monitor'
--> 234         things = csvToBOM(prjpath, prjname)

/home/jesse/Digi-Parser/SheetOrganizer.py in csvToBOM(projectpath, projectname)
    223         orderedBody = combineSameComponents(reorderParts(body))
    224 
--> 225         writeBOM(orderedBody, projectname)
    226 
    227 

/home/jesse/Digi-Parser/SheetOrganizer.py in writeBOM(parts, projectname)
    192        sheet.cell(row = r+i, column = 3).value = part.qty
    193     projectBOMname = projectname + 'BOM' + '.xlsx'
--> 194     wb.save(projectBOMname)
    195 
    196 

/usr/local/lib/python2.7/dist-packages/openpyxl/workbook/workbook.pyc in save(self, filename)
    265             save_dump(self, filename)
    266         else:
--> 267             save_workbook(self, filename)

/usr/local/lib/python2.7/dist-packages/openpyxl/writer/excel.pyc in save_workbook(workbook, filename)
    183     """
    184     writer = ExcelWriter(workbook)
--> 185     writer.save(filename)
    186     return True
    187 

/usr/local/lib/python2.7/dist-packages/openpyxl/writer/excel.pyc in save(self, filename)
    166         """Write data into the archive."""
    167         archive = ZipFile(filename, 'w', ZIP_DEFLATED)
--> 168         self.write_data(archive)
    169         archive.close()
    170 

/usr/local/lib/python2.7/dist-packages/openpyxl/writer/excel.pyc in write_data(self, archive)
     78         archive.writestr(ARC_WORKBOOK_RELS, write_workbook_rels(self.workbook))
     79         archive.writestr(ARC_APP, write_properties_app(self.workbook))
---> 80         archive.writestr(ARC_CORE, write_properties_core(self.workbook.properties))
     81         if self.workbook.loaded_theme:
     82             archive.writestr(ARC_THEME, self.workbook.loaded_theme)

/usr/local/lib/python2.7/dist-packages/openpyxl/writer/workbook.pyc in write_properties_core(properties)
     65     SubElement(root, '{%s}created' % DCTERMS_NS,
     66                {'{%s}type' % XSI_NS: '%s:W3CDTF' % DCTERMS_PREFIX}).text = \
---> 67                    datetime_to_W3CDTF(properties.created)
     68     SubElement(root, '{%s}modified' % DCTERMS_NS,
     69                {'{%s}type' % XSI_NS: '%s:W3CDTF' % DCTERMS_PREFIX}).text = \

/usr/local/lib/python2.7/dist-packages/openpyxl/date_time.pyc in datetime_to_W3CDTF(dt)
     54 def datetime_to_W3CDTF(dt):
     55     """Convert from a datetime to a timestamp string."""
---> 56     return datetime.datetime.strftime(dt, W3CDTF_FORMAT)
     57 
     58 

ValueError: year=1899 is before 1900; the datetime strftime() methods require year >= 1900

我不知道如何解决此问题。我不需要在计算机上安装Excel吗?看来问题出在openpyxl软件包的date_time.py文件中,并且出于某些原因,变量“ dt”设置为1899。

感谢您的任何帮助。

查理·克拉克(Charlie Clark)

如邮件列表中所述,这看起来像是Python日期时间库中的错误。https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

Python 3.3或3.4没有问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

保存工作簿时出现ExcelService错误

来自分类Dev

保存工作簿时出现新的Excel VBA编译错误

来自分类Dev

在工作簿之间复制和粘贴时出现 VBA 错误

来自分类Dev

从一个工作簿粘贴到另一个工作簿时出现 1004 错误

来自分类Dev

DateTime()工作错误

来自分类Dev

移动数据并打开 2 个工作簿时出现 VBA 运行时错误

来自分类Dev

将工作簿传递到 Access VBA 中时出现错误 424

来自分类Dev

尝试使用openpyxl打开工作簿时出现TypeError

来自分类Dev

尝试使用openpyxl打开工作簿时出现TypeError

来自分类Dev

使用DbFunctions截断DateTime时出现错误

来自分类Dev

修改工作簿openpyxl时,如何保存形状?

来自分类Dev

修改工作簿openpyxl时,如何保存形状?

来自分类Dev

使用Nullable DateTime时出现“ DateTime.ParseExact”错误

来自分类Dev

尝试保存在openpyxl中时出现关键错误-损坏了excel文件

来自分类Dev

尝试从新创建的工作簿中删除工作表时出现运行时错误 - Outlook VBA

来自分类Dev

从一个工作簿复制到另一个工作簿时出现运行时错误438

来自分类Dev

在VB.Net Excel工作簿中选择范围时出现错误“范围类的选择方法失败”

来自分类Dev

对象必填错误。将ActiveSheet保存到新工作簿

来自分类Dev

将字符串转换为DateTime时出现错误

来自分类Dev

尝试引用其他工作簿中的工作表并将其分配给变量时出现运行时错误1004

来自分类Dev

使用datetime.datetime.strptime时发生值错误

来自分类Dev

DateTime保存在错误的布局中

来自分类Dev

请求访问通讯簿时出现MachMessagePort错误

来自分类Dev

插入OrientDB时发生DateTime转换错误

来自分类Dev

将数据保存到mysql工作台时出现错误

来自分类Dev

尝试在 Python 中使用 strftime 转换 datetime.datetime 对象时出现 KeyValue 错误

来自分类Dev

在不打开工作簿的情况下使用 VBA 将 .xls 批量转换为 .xlsx 时出现文件格式错误

来自分类Dev

保护工作表时出现错误400

来自分类Dev

尝试在另一个工作簿中的一个工作簿中执行宏时发生错误

Related 相关文章

  1. 1

    保存工作簿时出现ExcelService错误

  2. 2

    保存工作簿时出现新的Excel VBA编译错误

  3. 3

    在工作簿之间复制和粘贴时出现 VBA 错误

  4. 4

    从一个工作簿粘贴到另一个工作簿时出现 1004 错误

  5. 5

    DateTime()工作错误

  6. 6

    移动数据并打开 2 个工作簿时出现 VBA 运行时错误

  7. 7

    将工作簿传递到 Access VBA 中时出现错误 424

  8. 8

    尝试使用openpyxl打开工作簿时出现TypeError

  9. 9

    尝试使用openpyxl打开工作簿时出现TypeError

  10. 10

    使用DbFunctions截断DateTime时出现错误

  11. 11

    修改工作簿openpyxl时,如何保存形状?

  12. 12

    修改工作簿openpyxl时,如何保存形状?

  13. 13

    使用Nullable DateTime时出现“ DateTime.ParseExact”错误

  14. 14

    尝试保存在openpyxl中时出现关键错误-损坏了excel文件

  15. 15

    尝试从新创建的工作簿中删除工作表时出现运行时错误 - Outlook VBA

  16. 16

    从一个工作簿复制到另一个工作簿时出现运行时错误438

  17. 17

    在VB.Net Excel工作簿中选择范围时出现错误“范围类的选择方法失败”

  18. 18

    对象必填错误。将ActiveSheet保存到新工作簿

  19. 19

    将字符串转换为DateTime时出现错误

  20. 20

    尝试引用其他工作簿中的工作表并将其分配给变量时出现运行时错误1004

  21. 21

    使用datetime.datetime.strptime时发生值错误

  22. 22

    DateTime保存在错误的布局中

  23. 23

    请求访问通讯簿时出现MachMessagePort错误

  24. 24

    插入OrientDB时发生DateTime转换错误

  25. 25

    将数据保存到mysql工作台时出现错误

  26. 26

    尝试在 Python 中使用 strftime 转换 datetime.datetime 对象时出现 KeyValue 错误

  27. 27

    在不打开工作簿的情况下使用 VBA 将 .xls 批量转换为 .xlsx 时出现文件格式错误

  28. 28

    保护工作表时出现错误400

  29. 29

    尝试在另一个工作簿中的一个工作簿中执行宏时发生错误

热门标签

归档