开发者

Python中win32com模块的使用

开发者 https://www.devze.com 2023-01-30 09:19 出处:网络 作者: 一ye残雪
目录0 前言1 Excel的API1.1 Excel示例2 Word的API0 前言 安装: pip install pypiwin32 1 Excel的API
目录
  • 0 前言
  • 1 Excel的API
    • 1.1 Excel示例
  • 2 Word的API

    0 前言

    安装:

    pip install pypiwin32 
    

    1 Excel的API

    import win32com.client as win32
    #创建
    xlApp = win32.Dispatch("Excel.Application")
    xlApp = win32.DispatchEx("Excphpel.Application")#使用启动独立的进程
    #后台运行, 不显示python, 不警告
    xlApp .Visible = 0;
    xlApp DisplayAlerts = 0;
    
    #打开新的文件
    xlBook = xlApp.Workbooks.Open(FileName)
    #创建新的工作簿
    new_xlBook = xlApp.Workbooks.Add()
    
    #获取
    xlSheet = xlBook.Worksheets('Sheet1')
    a = xlSheet .Cell(11, 5).Value # (row, col) 都是从1开始
    xlSheet .Cells(11, 5).Value = 2 # (row, col) 都是从1开始
    
    #范围操作
    xlSheet.Range(xlSjavascriptheet.Cell(11, 5), xlSheet.Cell(13, 6)).Value
    
    #添加图片
    xlSheet.Shapes.AddPicture(picturename, 1, 1, Left, Top, Width, Height)
    
    #copy 工作簿
    xlSheet2.Copy(None, xlSheet)
    
    #保存
    xlBook.SaveAs(FileName)#另存为
    xlBook.Save()
    
    #退出
    xlBook.Close()
    xlBook.Quit()

    1.1 Excel示例

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    import win32com.client as win32
    
    
    if __name__ == "__main__":
      '''  启动Excel程序并打开文件  '''
      app = win32.DispatchEx('Excel.Application') # 启动独立的进程,关闭时不影响其他文件
      app.Visible = False  # 不打开excel界面
      app.DisplayAlerts = False  # 不显示警告信息
      wb = app.Workbooks.Open(r'D:\6_SoftwareTest\XML\empty_book.xlsx')
      # wb = app.Workbooks.Add() #创建新文件
    
      '''  处理worksheet  '''
      ws = wb.Worksheets('Sheet1')
      ws.Cells(11, 5).Value = 2 # Cells(row,col) 先行后列 Cells(11,5)就指的是 E11单元格
      ws.Cells(11, 5).offset(3, 2).Value = 1 # E11 偏移后 到了 F13,移动(3-1,2-1)
      ws.Range('D10').value = 15 # 这里指对D10写入数据 15
    
      ws1 = wb.Worksheets
      ws1.Copy(None, ws)
      '''  保存并关闭Excel文件,退出程序  '''
      wb.Save()
      # wb.SaveAs(path)
      wb.Close()
      app.Quit()

    2 Word的API

    import win32com.client as win32
    
    #创建
    wdApp = win32.Dispatch("Word.Application")  
    wdApp = win32.DispatchEx("JqVlGCsQWord.Application")#使用启动独立的进程
    
    #后台运行, 不显示, 不警告
    wdApp.Visible = 0;
    wdApp.DisplayAlerts = 0;
    
    #打开新的文件
    doc = wdApp.Documents.Open(FileName)
    #创建新的文档
    new_doc = wdApp.Docu开发者_JAVAments.Add()
    
    #插入文字
    myRange = doc.Range(0, 0)
    myRange.InsertBefore("hello from Python")
    
    #使用样式
    wordStyle = myRange.Select()
    wordStyle.Style = constants.wdSty编程客栈leHeading1
    
    #正文文字替换
    wdApp.Selection.Find.ClearFormatting()
    wdApp.Selection.Find.Replacement.ClearFormatting()
    wdApp.Selection.Find.Execute(OldStr, False, False, False, False, False, True, 1, True, NewStr, 2)
    
    #表格操作
    doc.Tables[0].Rows[0].Cells[0].Range.Text = "hello world Python"
    doc.Tables[0].Rows.Add() #增加一行
    
    #转换为html
    wc = win32.constants
    wdApp.ActiveDocument.WebOptions.RelyOncss = 1
    wdApp.ActiveDocument.WebOptions.OptimizeForBrowser = 1
    wdApp.ActiveDocument.WebOptions.BrowserLevel = 0 # constants.wdBrowserLevelV4
    wdApp.ActiveDocument.WebOptions.OrganizeInFolder = 0
    wdApp.ActiveDocument.WebOptions.UseLongFileNames = 1
    wdApp.ActiveDocument.WebOptions.RelyOnVML = 0
    wdApp.ActiveDocument.WebOptions.AllowpNG = 1
    wdApp.ActiveDocument.SaveAs(FileName, FileFormat = wc.wdFormatHTML)
    
    #打印
    doc.PrintOut()
    
    #保存
    doc.SaveAs(FileName)#另存为
    doc.Save()
    
    #关闭
    doc.Close()
    wdApp.Quit()

    到此这篇关于Python中win32com模块的使用的文章就介绍到这了,更多相关Python win32com模块内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号