0

Excel への書き込み方法の例をたくさん見てきましたが、私のプログラムでは既存のデータから読み取る必要があります。列を読み、そこから数字を取り出し (列は任意の間隔で数字が入った空のセルです)、データの最後に達したときにブレークアウトする必要があります。私が今持っているコードは以下のとおりです。ここで、xlsht はシート名、x と y はセル インデックス、address はすべての数字が入っているリストです。

while y < xlsht.UsedRange:
    if str(xlsht.Cells(x,y).Value).isdigit:
        address.append(xlsht.Cells(x,y).Value)
        y += 1
        continue
    else:
        y += 1
return address

このままでは2行目でクラッシュ。

if xlsht.Cells(x,y).Value not None:

しかし、それはうまくいきませんでした。他にこれを行う方法がわかりません。また、使用して確認したかった

xlsht.UsedRange 

シートの最後の行を検出する正しい方法です。

4

1 に答える 1

1

エラー メッセージには、問題が何であるかについての有用な手がかりはありません。

解決策: 貧乏人のデバッガー。何が起こっているかを確認できるように、すべての変数を出力します。

print 'xlsht=',xlsht
print 'x=',x
print 'usedRange=',xlsht.UsedRange
while y < xlsht.UsedRange:
    print 'y=',y
    print 'cell=',xlsht.Cells(x,y)
    print 'value=',xlsht.Cells(x,y).Value
    if str(xlsht.Cells(x,y).Value).isdigit:
        address.append(xlsht.Cells(x,y).Value)
        y += 1
        continue
    else:
        y += 1
return address

あなたはアイデアを得る。Python 3.x を使用している場合は、print('x=',repr(x))

于 2012-06-19T20:01:15.587 に答える