[英]Is it possible to merge cells with an openpyxl write-only worksheet?
我正在創建大約 100,000 行的工作表,而 openpyxl 的寫入操作非常慢。 獲取行對象並填充它會很有用,但我找不到相應的 API。 關於優化的文檔提到了只寫模式。 我對這種模式的問題是它顯然不支持合並單元格,因為合並單元格似乎是在電子表格上完成的操作,而不是在附加的行上完成的操作。
from openpyxl import Workbook
from openpyxl.cell import WriteOnlyCell
from openpyxl.comments import Comment
from openpyxl.styles import Font
wb = Workbook(write_only = True)
ws = wb.create_sheet()
cell = WriteOnlyCell(ws, value="hello world")
cell.font = Font(name='Courier', size=36)
cell.comment = Comment(text="A comment", author="Author's Name")
ws.append([cell, 3.14, "foo","bar",None])
ws.append(["merged cells"])
ws.merge_cells(start_row=2,end_row=2,start_column=1,end_column=5)
wb.save('write_only_file.xlsx')
% python cm.py
Traceback (most recent call last):
File "cm.py", line 12, in <module>
ws.merge_cells(start_row=2,end_row=2,start_column=1,end_column=5)
AttributeError: 'WriteOnlyWorksheet' object has no attribute 'merge_cells'
有沒有辦法支持合並單元格? 否則,寫入單元格的方法比使用ws.cell()
獲取每個單元格並手動設置它更快嗎?
不,在只寫模式下無法指定是否合並單元格。
有關合並單元格的信息位於工作表的末尾,並且 API 當前不支持此功能,盡管可能可以添加代碼來執行此操作。
弄亂工作表的merged_cells
屬性對我merged_cells
。 下面是一個例子:
from openpyxl.workbook import Workbook
wb = Workbook(write_only=True)
ws = wb.create_sheet("Test")
ws.append(['A', '', '', '', '', 'B', '', '', '', ''])
for _ in range(100):
ws.append(['%d' % i for i in range(10)])
ws.merged_cells.ranges.append("A1:E1")
ws.merged_cells.ranges.append("F1:J1")
wb.save("Test.xlsx")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.