1

ここで助けが必要です。

これは私のコードです:

   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個のエントリを除外する理由がわかりません. さまざまな行や列からランダムな値を省略しているというデータのパターンはないようです。任意の助けをいただければ幸いです。

ありがとう、ウィル

4

2 に答える 2

1

Asetは、一意の値の順序付けられていないコレクションを提供します。スプレッドシートに重複するセルがある場合、最初のセルのみがセットに追加され、残りは破棄されます。

コメントに基づいて、デバッグを行っているように聞こえますが、解凍したセルを本当にカウントする必要がある場合は、append最初にそれらをリストにしてから、それを後でセットに変換するというオプションがあります。

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
于 2015-03-12T19:26:09.477 に答える