简体   繁体   English

openpyxl-只写工作表无法添加表

[英]openpyxl - write-only worksheet fails to add table

I want to write a new workbook, with 1 sheet and add a table to that sheet. 我想写一个新的工作簿,有1张纸,并向该纸上添加一张表格。 AFAIK it should be possible, this commit should do it https://bitbucket.org/openpyxl/openpyxl/commits/6f440b0ed398 AFAIK应该是可能的,这个提交应该做到https://bitbucket.org/openpyxl/openpyxl/commits/6f440b0ed398

But when I try to do that, it fails with the message: 但是当我尝试这样做时,它失败并显示以下消息:

KeyError: 'Unknown relationship: None'

My code snippet is: 我的代码段是:

from openpyxl import Workbook
from openpyxl.worksheet.table import Table

wb = Workbook(write_only=True)
ws = wb.create_sheet()

ws.append(['col1','col2','col3','col4'])
ws.append(['val11','val12','val13','val14'])
ws.append(['val21','val22','val23','val24'])
ws.append(['val31','val32','val33','val34'])
ws.append(['val41','val42','val43','val44'])

table = Table(displayName="basetable", ref="A1:D4")
ws.add_table(table)
wb.save('table.xlsx')

The full traceback is: 完整的回溯是:

File "<stdin>", line 1, in <module>
    wb.save('table.xlsx')

File "./site-packages/openpyxl/workbook/workbook.py", line 354, in save
    save_dump(self, filename)

File "./site-packages/openpyxl/writer/excel.py", line 313, in save_dump
    writer.save(filename)

File "./site-packages/openpyxl/writer/excel.py", line 266, in save
    self.write_data()

File "./site-packages/openpyxl/writer/excel.py", line 83, in write_data
    self._write_worksheets()

File "./site-packages/openpyxl/writer/excel.py", line 229, in _write_worksheets
    ws._rels[t._rel_id].Target = t.path

File "./site-packages/openpyxl/packaging/relationship.py", line 97, in __getitem__    
    raise KeyError("Unknown relationship: {0}".format(key))

Question : write-only worksheet fails to add table 问题 :只写工作表无法添加表

Tried your Example got: 尝试您的示例得到:

AttributeError: 'WriteOnlyWorksheet' object has no attribute 'add_table'

Removed write_only=True , works OK. 删除了write_only=True ,可以正常工作。

Output : 输出
在此处输入图片说明

Tested with Python: 3.4.2 and 2.7.9 - openpyxl: 2.4.1 - LibreOffice: 4.3.3.2 使用Python测试:3.4.2和2.7.9-openpyxl:2.4.1-LibreOffice:4.3.3.2

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM