0

最後の質問に取り組んで、システムを完成させる方法のかなりの部分を得ることができました。もちろん、私は問題に遭遇しました。

私は基本的にゲームをプレイするプログラムを持っています。正解ごとに、グローバル変数 'points' に 10 が加算されます。次に、「ポイント」を Excel スプレッドシートに追加したいと思います。

これは私が非常に立ち往生しているところです。XLRD-0.8.0、XLUTILS-1.4.1、および XLWT-0.7.5 を実行しています。

もちろん、さまざまなことを調べましたが、うまくいかないようです。

これは私のコードの簡略版です:

 import pygame, pygame.font, pygame.event, string, xlwt, xlrd, xlutils, socket


 points = 0

 def Uploadpoints(wbname):

     global points 
     wb = xlrd.open_workbook(wbname)

     # CODE TO FIND FIRST EMPTY CELL IN COLUMN 1 GOES HERE

     wb.write(row,0,points)
     wb.save()

 Uploadpoints('workbook1.xls')

このようなことを考えましたが、どうすればよいかわからないので、疑似コードを投稿します。

ワークシートの定義: ws = 'sheet 1'[完了]

列の定義: col = 0 [column A][完了]

空の列の最初の行を検索: ??? [まだ完成してない]

行として空の最初の行を定義します: row =????? [まだ完成してない]

どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1

0

数日前のこの質問に対する私の回答は、非常に適切です。

基本的に何が問題なのかというxlrdと、 とxlwtが異なるオブジェクトを持つ異なるモジュールです。で読み込んだオブジェクトは、書き込み方法を知っているオブジェクトと同じではありxlrd.open_workbook() ませんxlwt

これを回避するために、 にコピー機能がありxlutilsます。

from xlutils.copy import copy
import os

wb = xlrd.open_workbook(name) 

# Code to find the last open cell

wb = copy(wb)   #This is the important line!

sheet = wb.get_sheet(num)  #num is the index of the sheet you want to edit
sheet.write(whatever you want to write)

wb.save(name)
于 2014-01-22T21:09:27.417 に答える