Python xlwt : More than 4094 XFs (styles) 解決方法

    對於大量數據寫入excel文件,若是使用了表格樣式並且在循環中定義了樣式,就是產生了easyxf對象,那麼最多隻能新建4094個對象,oop

而後會拋出 More than 4094 XFs (styles)的異常,對於這種狀況,簡單的解決方案是把樣式定義在循環以外,好比:測試

# -*- coding: utf-8 -*-
from xlrd import open_workbook
from xlwt import Workbook, easyxf

def get_flush():
  book = Workbook()
  sheet = book.add_sheet('test')
  print 'flush_row_data' in dir(sheet)

##  default = easyxf('font: name Arial;')

  for i in xrange(10000):
    try:
      sheet.write(i,1,u'測試' ,easyxf('font: name Arial;'))
    except:
      print i
      raise
    if (i + 1) % 1000 == 0:
      book.save('test.xls')

  book.sace('test.xls')

get_flush()

這樣的代碼,會拋出異常信息.spa

改爲這樣的:excel

# -*- coding: utf-8 -*-
from xlrd import open_workbook
from xlwt import Workbook, easyxf

def get_flush():
  book = Workbook()
  sheet = book.add_sheet('test')
  print 'flush_row_data' in dir(sheet)

  default = easyxf('font: name Arial;') # define style out the loop will work

  for i in xrange(10000):
    try:
      sheet.write(i,1,u'測試' , default)
    except:
      print i
      raise
    if (i + 1) % 1000 == 0:
      book.save('test.xls')

  book.save('test.xls')

get_flush()

就不用擔憂異常了.code

相關文章
相關標籤/搜索