【问题标题】:Python - Write list values in xlwtPython - 在 xlwt 中写入列表值
【发布时间】:2016-05-22 20:07:27
【问题描述】:

我有一个 list,包含 Python 中的 lists。我想在xlwt单个列表作为一行。

 datalist = [['India', 'Yes', '99%'], [['China', 'Yes', '89%'], ['Brazil', 'No', '90%']], ['Russia', 'Yes', '92%'], [['Germany', 'No', '97%'], ['Spain', 'No', '70%']]]

首先我计算了list def count(local_list)的总数:

def listcount(lst):
  listsum = 0
  for item in lst:
    if not isinstance(l,list):
      return 1
    else:
      listsum+= listcount(item) 

  return listsum

excel_export.py

import xlwt

book = xlwt.Workbook()
sheet = book.add_sheet("PySheet1")


for rownum in range(listcount(datalist)):
  row = sheet.row(rownum)

  for index, col in enumerate(datalist):
    # do something similar like in listcount()
    # check if instance is list if not then write the value
    # rownum will act as a row
    # column value will come from list item

    row.write(row, col, val)


book.save("test.xls")

样本表

如何在适当的行和列中写入列表值?

【问题讨论】:

  • 添加示例 Excel 输出表。
  • @VedangMehta- 添加了 Excel 示例!

标签: python list xlwt


【解决方案1】:

从一开始就一劳永逸地处理列表的怪异结构要简单得多:

datalist = [['India', 'Yes', '99%'], [['China', 'Yes', '89%'], ['Brazil', 'No', '90%']], ['Russia', 'Yes', '92%'],
            [['Germany', 'No', '97%'], ['Spain', 'No', '70%']]]

new_datalist = []
for lst in datalist:
    if isinstance(lst[0], list):
        new_datalist.extend(lst)
    else:
        new_datalist.append(lst)
datalist = new_datalist

print(datalist)

输出:

[['India', 'Yes', '99%'], ['China', 'Yes', '89%'], ['Brazil', 'No', '90%'], ['Russia', 'Yes', '92%'], ['Germany', 'No', '97%'], ['Spain', 'No', '70%']]

现在您可以直接将值写入工作表。你也可以去掉listcount

【讨论】:

  • 你是造雨者 Alex Hall!
猜你喜欢
  • 1970-01-01
  • 2014-04-12
  • 2011-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-22
  • 1970-01-01
相关资源
最近更新 更多