Python启动Excel

发布时间:2019-07-14 10:23:24编辑:auto阅读(3126)

    通过简单的实例实现Python与Excel程序实现交互控制。

    需要安装pywin32,根据自己的实际情况选择下载版本

    引入组件

    import win32com.client, win32process

    开始启动Excel

    win32com.client.Dispatch('Excel.Application'):启动Excel进程,如果系统内存中存在Excel进程则直接使用现有的进程不会新增

    win32com.client.DispatchEx('Excel.Application'):启动一个新的Excel进程

    win32com.client.gencache.EnsureDispatch('Excel.Application'):和第一情况一样,但是会检测是否存在缓存文件。生成常量缓存文件便于调用程序的常量参数如:win32com.client.constants.xlCalculationManual等。一旦缓存生成,三种方式都可以调用常量参数

    缓存文件的目录:

    import os
    print os.path.join(win32com.__gen_path__, str(win32com.client.gencache.GetClassForProgID('Excel.Application')).split('.')[2])

    这里测试我们选择桌面交互的方式控制已开启的空白工作簿

    xlApp = win32com.client.gencache.EnsureDispatch('Excel.Application')
    print (xlApp.Version, xlApp.Caption)

    获取Excel进程Id

    Pid = win32process.GetWindowThreadProcessId(xlApp.Hwnd)[1]
    print Pid

    控制活动工作表

    Sht = xlApp.ActiveWorkbook.ActiveSheet
    print Sht.Name
    import datetime
    Sht.Name = datetime.datetime.today().strftime('%Y%m%d')
    print Sht.Name

    单元格读写操作

    1. 九九乘法表

    Sht.Range(Sht.Cells(1,1), Sht.Cells(9,9)).Formula = '=IF(COLUMN()>ROW(),"",CONCATENATE(COLUMN(),"x",ROW(),"=",COLUMN()*ROW()))'

    2. 批量读取

    print Sht.Range(Sht.Cells(1,1), Sht.Cells(9,9)).Value

    3. 简单了解Value、Value2、Text三者的区别

    A10 = Sht.Range('A10')
    A10.Value = datetime.datetime.today()
    print (A10.Value, A10.Value2, A10.Text)

    上图:

    wKiom1UY10eR_seZAAboRMVllgI436.jpg

    (未完)

关键字