所以,请不要告诉我去谷歌或研究或阅读任何东西,我已经这样做了几天,如果我看到有人这样说,我会很生气。在
我的问题:我正在使用pywin32和python2.7.8与(已经存在的)excel表进行通信。我用它来记录我的工作时间和挣来的钱等,我可以打开工作簿,找到我现有条目下的下一个空单元格,并在该单元格中写入日期。我的问题在于我需要水平导航。我希望程序自动运行,这样我就不会总是知道手机的号码。例如,我现在的手机是18,1。我要转到18,2,18,3,18,4和18,5。但下次我运行脚本时可能需要19,2。。。等等
我怎么做?有没有一种方法可以返回当前单元格或其他内容? 代码:
import win32com.client as win32
import os, time
xl = win32.Dispatch('Excel.Application')
xl.visible = True
xl.Workbooks.Open(os.path.join('C:\\Users\\[REDACTED]\\Desktop', '[REDACTED].xls'))
xlSheet = xl.Sheets(1)
activecell = xlSheet.Cells(1,1)
def GetEmptyCell():
global activecell
activecell = xlSheet.Cells(1,1)
for c in range(1,99,1):
if activecell.Value == None:
print 'Empty cell'
activecell = xlSheet.Cells(c,1)
print '(' + str(c) + ',1)'
return activecell
elif activecell.Value != None:
c += 1
activecell = xlSheet.Cells(c,1)
print 'Full cell, next'
GetEmptyCell()
def WriteToEmpty():
global activecell
global HoursWorked
global GrossIncome
global NetIncome
HoursWorked = raw_input('Input amount of hours worked: ')
GrossIncome = float(HoursWorked) * 9.15
NetIncome = float(GrossIncome) * 0.86233
print 'Money Made: ' + str(GrossIncome) + ' Take Home: ' + str(NetIncome)
activecell.Value = time.strftime('%a') + ' ' + time.strftime('%m') + '/' + time.strftime('%d')
#HELP FROM HERE
WriteToEmpty()``
有很多种方法可以实现你想要的。如果列A中有连续的数据,可以使用类似xl.范围(“A1”).end(xldown).offset(1,0).address获取下一个空行中第一个单元格的地址。或者你可以用xl.范围(“A1”)。当前区域及其偏移量。 就我个人而言,我可能只是将当前区域放入一个数组中,然后从那里开始工作,然后将数组转储回工作表,但这一直是我的首选,大多数人似乎更喜欢在工作表上工作。在
相关问题 更多 >
编程相关推荐