Python(Pywin32)引用自己的单元/水平移动器

2024-10-02 22:32:55 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,请不要告诉我去谷歌或研究或阅读任何东西,我已经这样做了几天,如果我看到有人这样说,我会很生气。在

我的问题:我正在使用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()``

Tags: importtimevalueglobal手机printcellsstr
1条回答
网友
1楼 · 发布于 2024-10-02 22:32:55

有很多种方法可以实现你想要的。如果列A中有连续的数据,可以使用类似xl.范围(“A1”).end(xldown).offset(1,0).address获取下一个空行中第一个单元格的地址。或者你可以用xl.范围(“A1”)。当前区域及其偏移量。 就我个人而言,我可能只是将当前区域放入一个数组中,然后从那里开始工作,然后将数组转储回工作表,但这一直是我的首选,大多数人似乎更喜欢在工作表上工作。在

相关问题 更多 >