質問

最初と最前線:事前に助けてくれてありがとう。私は完全なプログラミング初心者です、そして私のコードはそれを反映します。私がやろうとしていることを説明し、コードを表示します。繰り返しますが、時間と説明をありがとうございました。

目的: Pythonが既存のExcelファイル(output.xls)を開き、次の利用可能な行に値(この場合は「テストテキスト」)を入力したいその文書で。私は「while」ループを使用しようとしました、そしてこれを完了させる 'if'ステートメントです。どちらも誤差もないが、両方とも2行目を超えて出力を正しく移動できません。これが私が持っているものです。

from xlrd import open_workbook
from xlutils.copy import copy
import xlwt

wb = open_workbook('output.xls',formatting_info=True)
sheet = wb.sheet_by_name("sheet 1")

#This is the simple test text here.
a = 'just a test'

rb = copy(wb)
ws = rb.get_sheet(0)

row = 0
cell = sheet.cell(row,4)
.

以下で言おうとしているのは - while - セルは空白ではない(タイプ6)、次に行に1を追加して繰り返します。 IE:4列目に空白行を打つまで進まないでください。

while cell.ctype != 6:
    row = row + 1

ws.write(row,4,a)
.

そしてここでは、結果を確認したいです。

print cell.ctype
rb.save('output.xls')
.

関係なく、コードを実行すると、最初の行を通過してもらえません。コードが言っているようなものです。ネットを検索する時間にもかかわらず、私は理由を見つけることはできません。

任意の助け/ガイダンスが途方もないことにあります。

---編集---

これは私が提案された回答に受けているエラーです。誤差は同じです。

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\Folder", line 19, in <module>
    cell = sheet.cell(row,4)
  File "C:\Python27\lib\site-packages\xlrd\sheet.py", line 395, in cell
    xfx = self.cell_xf_index(rowx, colx)
  File "C:\Python27\lib\site-packages\xlrd\sheet.py", line 421, in cell_xf_index
    xfx = self._cell_xf_indexes[rowx][colx]
IndexError: list index out of range
.

役に立ちましたか?

解決

次のセルには移動しません。変数rowを変更するだけでは、cellには影響しません。代わりにこのコードを試してください:

cell = sheet.cell(row,4)
while cell.ctype != 6:
    row = row + 1
    if row >= sheet.nrows:
        break
    cell = sheet.cell(row,4)   # <-- actually move the "pointer" in the excel sheet
.

他のヒント

行インデックスをアドバンスする - しかし、あなたは新しいセルを読みませんので、あなたのセルは同じままです、そしてあなたはエンドレスループを入力してください

while cell.ctype != 6:
    row = row + 1
    cell = sheet.cell(row,4)
.

働くべき

編集:

行不足の中で実行中 - 簡単に固定されています

try:
    while cell.ctype != 6:
        row = row + 1
        cell = sheet.cell(row,4)
except IndexError:
    <do something>
.

個人的に、私はあなたの走りが早すぎる気分があります - あなたは基本を学ぶことなく深くなりすぎています

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top