7

具体的には、既存のワークブックを開いて、データを書き込もうとしています。

ただし、データを書き込むたびに、それらのセルの境界が消去されます。

そのため、セルに書き込む前にそのセルのスタイルをコピーしてから再適用する方法があるかどうか疑問に思っています。

私はこのコードで正しい軌道に乗っていると思いますか?

from xlrd import open_workbook
from xlwt import easyxf
from xlutils.copy import copy
from xlutils.styles import Styles

rb=open_workbook('source.xls',formatting_info=True)
styles = Styles(rb)
rs=rb.sheet_by_index(0)
wb=copy(rb)
ws=wb.get_sheet(0)

for i,cell in enumerate(rs.col(2)):
    if not i:
      continue
    cell_style = styles[rs.cell(i,2)]
    ws.write(i,2,cell.value,cell_style)

wb.save('output.xls')

しかし、私はこのエラーが発生しています:

AttributeError: NamedStyle instance has no attribute 'font'
4

1 に答える 1

3

ここでの問題は、xlrd.NamedStyle が xlwt.XFStyle と大きく異なることです。

質問は、Python の xlrd、xlwt、および xlutils.copy を使用して Preserving stylesの複製のようです。

于 2011-11-10T10:46:37.647 に答える