Python - Excel:查找列中的第一个空行

时间:2014-01-22 21:05:03

标签: python excel xlrd xlwt xlutils

从我上一个问题开始,我已经成功地完成了我的系统完成的一大部分工作。当然,我遇到了一个问题。

我基本上有一个玩游戏的程序。每个正确的答案都会为全局变量'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] [完成]

在col中搜索第一行为空:??? [未完成]

将第一行空行定义为行:row = ????? [未完成]

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

几天前我对this question的回答是非常重要的。

基本上出错的是xlrdxlwt是具有不同对象的不同模块。您使用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)