Python xlrd 对 Excel 电子表格的迭代遗漏了单元格值

标签 python iteration xlrd xlutils

这里需要一些帮助,

这是我的代码:

   import xlutils
   import xlrd
   import os
   import sys
   datafile = r'C:\\someexcelfileediting.xlsx'
   workbook = xlrd.open_workbook(datafile)
   stone = workbook.sheet_by_name(input('What is the name of the sheet you are trying to reference?  ').upper())
   paper = workbook.sheet_by_name(input('what sheet would you like to check?  ').upper())
   def check_Base():
   set2 = set()
   for row in range (0, paper.nrows):    
       for col in range(0, paper.ncols):       
           set2.add(paper.cell_value(row, col))
   print (len(set2))
   print (set2)
check_Base()

我最终得到的是它正在迭代的 Excel 工作表的 91 个值中的 79 个,我不明白为什么它排除了文件中的 12 个条目。数据似乎没有省略不同行和列中的随机值的模式。任何帮助,将不胜感激。

谢谢, 会

最佳答案

set 将为您提供唯一值的无序集合。如果电子表格中有重复的单元格,则只有第一个单元格会添加到集合中,其余单元格将被丢弃。

根据您的评论,听起来您只是在进行一些调试,但如果您确实需要计算已解压的单元格数量,一种选择是将它们附加到列表中首先,然后将其转换为集合。

mylist = []
for row in range (0, paper.nrows):    
    for col in range(0, paper.ncols):       
        mylist.append(paper.cell_value(row, col))

print len(mylist) # 91

myset = set(mylist)

print len(myset) # 79

关于Python xlrd 对 Excel 电子表格的迭代遗漏了单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28970809/

相关文章:

python - Inspect.getsourcelines(None.__str__) 抛出令人困惑的 TypeError

python - 有没有更快的方法将 excel 文件读取到 pandas 数据框

python - xlrd,xlwt 与 sagemath

python - 如何在停机期间运行它?

python - 我可以在不进行系统范围安装的情况下使用 Z3Py 吗?

python - Gtk +3 TextView 应用程序崩溃

python - 为什么 `__iter__` 定义为实例变量时不起作用?

python - 在 Python (Pandas-Numpy) 中,如何使用条件和迭代修改列名(字符串)?

python - For 循环与 while 和 next 性能

python - 使用 python xlrd 将 xlsx 文件的单列写入 csv