将我的输出转换为另一个excel文件

时间:2014-10-08 14:15:33

标签: python

import os, sys
from xlrd import open_workbook
from xlutils.copy import copy
from xlwt import easyxf, Style
import time

rb =  open_workbook('A1.xls', on_demand=True,formatting_info =True)
rs =  rb.sheet_by_index(0)
wb = copy(rb)
ws =  wb.get_sheet(0)

start =time.time()
g1 = dict()

for row in range(1,rs.nrows):
    for cell in row:          
        cellContent = str(cell.value)

        if cellContent not in g1.keys():
            g1[cellContent]=1
        else:
            g1[cellContent]=g1[cellContent]+1  

for cellContent in g1.keys():
    print cellContent, g1[cellContent]
    ws.write(row,1, cellContent)

wb.save('A2.xls')

当我运行此代码时,我收到错误消息cell对象无法迭代 什么可能出错?

2 个答案:

答案 0 :(得分:0)

你遇到的问题是row是一个整数,因为它使用for row in range(1, rs.nrows):填充range()函数returns an integer - 在你的情况下,我认为是每个行号介于1和电子表格中的行数之间。

我不熟悉xlrdxlutilsxlwt模块的工作原理,但我想你想做更多类似的事情:

for row_number in range(1, rs.nrows):
    row = rs.row(row_number)
    for cell in row:
        ....

Sheet.row(rowx)方法为您提供了一系列Cell个对象,您可以在内循环中进行迭代。

答案 1 :(得分:0)

我不熟悉xlrd或任何其他模块,但使用csv或excel电子表格做任何工作,我使用Pandas,特别是这个link。它允许您轻松阅读和进行各种修改,然后也很容易写出来。如果您想要的只是复制它将非常容易。