【问题标题】:Python - Excel: Finding the first empty row in a columnPython - Excel:查找列中的第一个空行
【发布时间】:2014-01-22 21:05:03
【问题描述】:

从我上一个问题开始,我已经设法获得了完成我的系统的大部分方法。我当然遇到过问题。

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

任何帮助将不胜感激。提前致谢。

【问题讨论】:

  • 运行这个游戏的机器上有 Excel 吗?如果是这样,不妨使用win32com 并使用 Excel 本身来执行此操作,如果这会导致问题。这很容易:Columns("A").Find("", Cells(Rows.Count, "A")).
  • 是的 Excel 在机器上。我对win32com不熟悉,那需要对代码进行哪些更改/完成?
  • 从未使用过xlwtxlrd,很难说。通用框架将保持不变,您只需告诉 Excel 做您需要它做的事情。看看这里粗略判断一下:pythonexcels.com/basic-excel-driving-with-python

标签: python excel xlrd xlwt xlutils


【解决方案1】:

我几天前对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)

【讨论】:

  • 嘿,我有这个; gyazo.com/caaf1ada6a60fc95032234ea15e2072c... 但我收到 AttributeError: 'Workbook' object has no attribute 'write' 错误消息
  • @user3191879,我真傻,你不能写工作簿,看我的更新
  • wooooow 我是个白痴,没有意识到 xD 感谢您的保存功能。
  • 好吧,这更多的是询问如何获取列中的第一个空行号:s 我们只是有点被跟踪了。
  • @user3191879,pnuts 的评论提醒了我,如果你想出了问题的答案,通常最好将其发布在此处,以便其他人可以理解
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-03
相关资源
最近更新 更多