精华内容
下载资源
问答
  • python 3.6 安装 win32 win32com模块

    万次阅读 多人点赞 2018-05-24 13:17:25
    本人使用python3.6,最近要使用到pywin32中的为win32com模块,于是尝试安装,主要方法有以下几种:  1.在http://sourceforge.net/projects/pywin32/files/pywin32/ 上下载对应的版本进行安装,对build221,220,...

    本人使用python3.6,最近要使用到pywin32中的为win32com模块,于是尝试安装,主要方法有以下几种: 


    1.在http://sourceforge.net/projects/pywin32/files/pywin32/ 上下载对应的版本进行安装,对build221,220,219均进行了尝试(分别对应了python3.5.3,3.5.1+,3.5.0a版本,在进行安装时,不能正确寻找到python的安装目录,并将所搜索到的方法均进行尝试后仍然不能解决,遂放弃,可能是跟我使用的python版本有问题吧(未验证)。 


    2.在http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook下载了.whl文件,使用pip 安装后发现其中有文件缺失,不能正常使用。 


    3.这是我成功的方法,经过搜索和向人请教后,在https://stackoverflow.com/questions/4863056/how-to-install-pywin32-module-in-windows-7找到这样一段话: 
    这里写图片描述 
    于是在cmd中使用python -m pip install pypiwin32进行安装,成功解决。

     
    因为我寻找到这个解决办法耗费了一定时间,在中文资料中暂时没找到第三种解决方案的描述,因此分享出来,希望对大家有用。

    展开全文
  • python处理word文件:win32com用法详解

    热门讨论 2011-12-01 20:53:19
    目标:用python处理 doc 文件 方法:引入 win32com 首先要下载安装 win32com模块 下载地址: 下载地址: http://sourceforge.net/projects/pywin32/files/
  • win32com模块

    千次阅读 2019-04-14 22:34:55
    import win32com.client as win32 #建立一个可视的excel app = 'Excel' xl = win32.gencache.EnsureDispatch('%s.Application' % app) ss = xl.Workbooks.Add() sh = ss.ActiveSheet xl.Visible = True #编辑...
    import win32com.client as win32
    

    建立一个可视的excel

    app = 'Excel'
    xl = win32.gencache.EnsureDispatch('%s.Application' % app)
    ss = xl.Workbooks.Add()
    sh = ss.ActiveSheet
    """
    0代表隐藏对象,但可以通过菜单再显示
    -1代表显示对象
    2代表隐藏对象,但不可以通过菜单显示,只能通过VBA修改为显示状态
     """
     xl.Visible = True
    

    编辑excel

    sh.Cells(1,1).Value =1             #A1赋值为1
    sh.Cells(1,1).Font.Bold = True     #加粗
    sh.Range(sh.Cells(1, 1),sh.Cells(1,5)).Font.Name = "Times New Roman"#选择指定区域
    sh.Range(sh.Cells(1, 1), sh.Cells(1,5)).Font.Size = 10.5
    sh.Cells(row, col).Name = "Arial"#字体类型
    sh.Rows(row).Delete()#删除行  
    sh.Columns(row).Delete()#删除列
    
    sh.Range(sh.Cells(1,1),sh.Cells(1,1)).HorizontalAlignment = 
    win32.constants.xlCenter #水平居中xlCenter
    
    sh.SaveAs(path+'demo.xls')
    ss.Close(False)
    xl.Application.Quit()
    
    from win32com.client import Dispatch    
    import win32com.client    
    class easyExcel:     
          def __init__(self, filename=None):  #打开文件或者新建文件(如果不存在的话)  
              self.xlApp = win32com.client.Dispatch('Excel.Application')    
              if filename:    
                  self.filename = filename    
                  self.xlBook = self.xlApp.Workbooks.Open(filename)    
              else:    
                  self.xlBook = self.xlApp.Workbooks.Add()    
                  self.filename = ''  
            
          def save(self, newfilename=None):  #保存文件  
              if newfilename:    
                  self.filename = newfilename    
                  self.xlBook.SaveAs(newfilename)    
              else:    
                  self.xlBook.Save()        
          def close(self):  #关闭文件  
              self.xlBook.Close(SaveChanges=0)    
              del self.xlApp    
          def getCell(self, sheet, row, col):  #获取单元格的数据  
              sht = self.xlBook.Worksheets(sheet)    
              return sht.Cells(row, col).Value    
          def setCell(self, sheet, row, col, value):  #设置单元格的数据    
              sht = self.xlBook.Worksheets(sheet)    
              sht.Cells(row, col).Value = value  
          def setCellformat(self, sheet, row, col):  #设置单元格的数据样式
              sht = self.xlBook.Worksheets(sheet)    
              sht.Cells(row, col).Font.Size = 15#字体大小  
              sht.Cells(row, col).Font.Bold = True#是否黑体  
              sht.Cells(row, col).Name = "Arial"#字体类型  
              sht.Cells(row, col).Interior.ColorIndex = 3#表格背景  
              #sht.Range("A1").Borders.LineStyle = xlDouble  
              sht.Cells(row, col).BorderAround(1,4)#表格边框  
              sht.Rows(3).RowHeight = 30#行高  
              sht.Cells(row, col).HorizontalAlignment = -4131 #水平居中xlCenter  
              sht.Cells(row, col).VerticalAlignment = -4160 #  
          def deleteRow(self, sheet, row):  
              sht = self.xlBook.Worksheets(sheet)  
              sht.Rows(row).Delete()#删除行  
              sht.Columns(row).Delete()#删除列
          def getRange(self, sheet, row1, col1, row2, col2):  #获得一块区域的数据,返回为一个二维元组    
              sht = self.xlBook.Worksheets(sheet)  
              return sht.Range(sht.Cells(row1, col1), sht.Cells(row2, col2)).Value    
          def addPicture(self, sheet, pictureName, Left, Top, Width, Height):  #插入图片    
              sht = self.xlBook.Worksheets(sheet)    
              sht.Shapes.AddPicture(pictureName, 1, 1, Left, Top, Width, Height)    
                    
          def cpSheet(self, before):  #复制工作表  
              shts = self.xlBook.Worksheets    
              shts(1).Copy(None,shts(1))
    
          def inserRow(self,sheet,row): #插入一个工作表
              sht = self.xlBook.Worksheets(sheet)
              sht.Rows(row).Insert(1)
    
          #下面是一些测试代码。
    if __name__ == "__main__":    
          #PNFILE = r'c:/screenshot.bmp'  
          xls = easyExcel(r'd:\jason.li\Desktop\empty_book.xlsx')     
          #xls.addPicture('Sheet1', PNFILE, 20,20,1000,1000)    
          #xls.cpSheet('Sheet1')  
          xls.setCell('sheet1',2,'A',88)  
          row=1  
          col=1  
          print("*******beginsetCellformat********")  
          # while(row<5):
          #   while(col<5):
          #       xls.setCellformat('sheet1',row,col)
          #       col += 1
          #       print("row=%s,col=%s" %(row,col))
          #   row += 1
          #   col=1
          #   print("*******row********")
          # print("*******endsetCellformat********")
          # print("*******deleteRow********")
          # xls.deleteRow('sheet1',5)
          xls.inserRow('sheet1',7)
          xls.save()    
          xls.close()
    
    from win32com.client import Dispatch
    import win32com.client
    import time
    
    # 获取excel 对象
    
    excel = win32com.client.Dispatch('Excel.Application')
    
    """
    0代表隐藏对象,但可以通过菜单再显示
    -1代表显示对象
    2代表隐藏对象,但不可以通过菜单显示,只能通过VBA修改为显示状态
    """
    excel.Visible = -1
    
    # 打开excel
    
    myBook = excel.Workbooks.Open("e:/接口测试用例.xlsx")
    
    # sheet页,可以是序号,也可以是名称
    mySheet = myBook.Worksheets("过程结果")
    #excel的下标都是从1开始的
    #mySheet = myBook.Worksheets(1)
    
    time.sleep(2)
    
    # 删除行,清除历史数据
    mySheet.Rows("2:500").delete
    #mySheet.Columns("1").delete
    
    # 获取当前sheet页有效的行数
    LastRow = mySheet.usedrange.rows.count
    print("该sheet页目前已经存在", LastRow, "行")
    
    # 获取当前sheet页有效的列数
    LastColumn = mySheet.usedrange.columns.count
    print(LastColumn)
    
    # 焦点转移到sheet页
    mySheet.Activate
    # 给单元格赋值 Cells(行,列)
    mySheet.Cells(2, 2).Value = "使用win32com"
    # 设置单元格字体位红色
    mySheet.Cells(2, 2).Font.Color = -16776961
    # 设置单元格字体为粗体
    mySheet.Cells(2, 2).Font.Bold = True
    # 设置单元格字体
    mySheet.Cells(2, 2).Font.Name = "微软雅黑"
    
    time.sleep(1)
    
    mySheet.Activate
    mySheet.Cells(2, 3).Value = "使用win32com"
    # 设置单元格字体位绿色
    mySheet.Cells(2, 3).Font.Color = -11489280
    mySheet.Cells(2, 3).Font.Bold = True
    
    # 获取一个单元格的值
    aCellValue=mySheet.Cells(2, 3).Value
    print(aCellValue)
    
    
    # 获取一个范围的值,类型为嵌套的list
    range_list=mySheet.Range(mySheet.Cells(1, 1), mySheet.Cells(5, 5)).Value
    
    # 给一个范围赋值,输入的值应该为嵌套的list
    mySheet.Range(mySheet.Cells(6, 1), mySheet.Cells(10, 10)).Value = range_list
    # 改变一个范围的属性值
    mySheet.Range(mySheet.Cells(6, 1), mySheet.Cells(10, 10)).Font.Color = -11489280
    
    # 如果范围是一行的话,赋值应该使用非嵌套的list,例如:
    row_v=(1,2,3,4)
    mySheet.Range(mySheet.Cells(11, 1), mySheet.Cells(11, 4)).Value = row_v
    
    # 给整个一行赋值,慎用。。。
    mySheet.Rows(12).Value = row_v
    print(range_list)
    
    #单元格添加颜色
    WinSheet.Cells(1, 1).Interior.ColorIndex = 3
    #或者Range("A1") 
    WinSheet.Range("A1").Interior.ColorIndex = 3   
    #3=红色,不同的值代表不同的颜色,可以去查看msdn  vba 文档,这就不详细说了
     
    #再是RGB调色方式#Cells 和 Range都可以,Range可以选择一大片区域
    WinSheet.Cells(1, 1).Interior.Color = RGB(0, 0, 255) 
    #或
    WinSheet.Range("A1").Interior.Color = RGB(255, 0, 255) 
    #字体的颜色也是一样
    WinSheet.Cells(1, 1).Font.ColorIndex = 3
    WinSheet.Cells(1, 1).Font.Color = RGB(0, 0, 255)
    
    # 保存
    myBook.save
    
    # 退出
    myBook.close
    
    import win32com.client as win32
    
    # add_a_workbook
    excel = win32.gencache.EnsureDispatch('Excel.Application')
    excel.Visible = True
    """
        0代表隐藏对象,但可以通过菜单再显示
        -1代表显示对象
        2代表隐藏对象,但不可以通过菜单显示,只能通过VBA修改为显示状态
    """
    excel.Application.ScreenUpdating = False  # 关闭屏幕更新
    excel.DisplayAlerts = 0 # 不警告
    
    wb = excel.Workbooks.Add() # 新建工作薄
    # wb = excel.Workbooks.Open('workbook1.xlsx')
        # 打开已存在的工作薄
    wb.SaveAs('add_a_workbook.xlsx') # 新建的用SaveAa(),否则用Save()
    # wb.Close(SaveChanges=0) 
    excel.Application.Quit()
    
    # add_a_worksheet
    sht = wb.Worksheets.Add()   
    # wb.Worksheets("Sheet1")  # 已存在
    # wb.Worksheets(1)  # 序号     
    sht.Name = 'sheet1' 
    sht.Range("A1").Value = 1
    
    # Range and Offset
    sht.Cells(1,1).Value = 'A1'   # 从1开始
    
    sht.Cells(1,1).Offset(2,4).Value = "D2"  # ?
        # offset中的参数自身就算一行一列,这是与VBA不同处
        
    sht.Range("A2").Value = 'A2'
    sht.Range("A3:B4").Value = 'A3:B4'
    sht.Range("A6:B7,A9:B10").Value = "A6:B7,A9:B10"
    sht.Range(sht.Cells(1,1),sht.Cells(3,3)).Value = rglist # 嵌套的列表
    
    # cell_color and Format
    for i in range (1,21):
        sht.Cells(i,1).Value = i
        sht.Cells(i,1).Interior.ColorIndex = i
        
    sht.Cells(3,2).Font.Color = -16776961
    
    sht.Cells(3,2).Font.Bold = True
    sht.Cells(3,2).Font.Name = '宋体'
    
    sht.Range("A1:A5").HorizontalAlignment = win32.constants.xlRight
        # 返回或设置指定对象的水平对齐方式    靠右    
    sht.Rows(1).VerticalAlignment = win32.constants.xlCenter
        # 返回或设置指定对象的垂直对齐方式  居中
        
    sht.Rows.AutoFit() # 可自动调整工作表中的所有行   
    
    sht.Range("B1:B5").NumberFormat = "$###,##0.00"        
        
    # autoFill
    sht.Range("A1:A2").AutoFill(sht.Range("a1:a10"),win32.constants.xlFillDefault)
        # 将A1:A2自动填充到A1:A10
    
    # Column/Row Formatting
    sht.Columns(1).ColumnWidth = 1
    sht.Range("B:B").ColumnWidth = 1
    
    sht.Columns.AutoFit() # 可自动调整工作表中的所有列
    
    sht.Rows("2:500").Delete
    
    sht.Rows(12).Value = '' # 整行
    sht.Range('E2').EntireColumn.Address    # $E:$E 整列
    sht.Range('E2').EntireRow.Address       # $2:$2 整行
    
      # UsedRange       
    row = len(sht.UsedRange.Rows)  # 已使用的最大区域的行数
        # sht.UsedRange.Rows.Count # 抛异常 无此属性
      
    sht.UsedRange.Rows(1).Value[0]
    sht.UsedRange.Rows.Value
    sht.UsedRange.Address
    sht.UsedRange.Cells(1).Address # 绝对地址      
    sht.UsedRange.Cells(1).Row     # 已用区域的起始点行号
    
      # CurrentRegion
    sht.Range('E2').CurrentRegion.Count  # UsedRange中无此属性
        # 区域中所有单元格总数
    sht.Range('E2').CurrentRegion.Rows.Count
        # 区域中行数和
    
    # Intersect     # (同工作表中的)参数的重叠区域
    excel.Application.Intersect(sht.Range('a2:b3'),sht.Range('b3:c4')).Address
        # $B$3
        
    # End
    sht.Cells(2,1).End(win32.constants.xlDown).Offset(2,1).Value = ''
    sht.Rows(2).End(win32.constants.xlToRight).Address
        # 函数意义及方向同VBA: xlToLeft/ xlUp / xlToRight/ xlDown
        
    # Resize # ?
    sht.Range('E2').Resize(2,2).Address  # $F$3
    sht.Range('E2').Offset(2,2).Address  # $F$3
        # Resize并未扩大区域,效果与Offset效果,为何?(在wps中测试)        
    
    # Activate/Select 焦点转移
    sht.Activate
    sht.Select()
    excel.Selection.ColumnWidth = 4 
        # 只能是excel !!
    
    # Names
    wb.Names.Count      # sht.Names.Count 下同
    wb.Names(1).Name
    wb.Names(1).Visible = False     # 隐藏
    sht.Names(1).Name = 'date'      # 重命名
    
    sht.Range('A2').Name = 'STD'  
    print(sht.Range('STD').Value)
    print(sht.Evaluate('STD'))   # 同上一行
    
    wb.Names.Add(Name="abc",RefersTo="=sheet1!$A$1:$J$1",Visible=False)
        # 创建新的命名
        # RefersTo中不加工作表名时为全局命名(整个工作簿可用),否则为局部命名
    sht.Names.Add("abc","=$A$1:$J$1",True)  
        # 创建sht中的局部命名
        
    print(help(sht.Names.Add)) # 查看Add函数有哪些参数
    
    
    # Copying Data from Worksheet to Worksheet
    
    sht.Range('A2:J10').Formula = "=row()*column()" # 公式
    
    wb.Worksheets.FillAcrossSheets(wb.Worksheets("Sheet1").Range("A2:J10"))        
        # 将sheet1中A2:J10的数据复制到wb中所有工作表的相同位置
        
        # FillAcrossSheets:将单元格区域复制到集合中所有其他工作表的同一位置
        # 还有一可选参数,指定如何复制区域:
        #   xlFillWithAlldefault/xlFillWithContents/xlFillWithFormats(详VBA)
    
    sht.Copy(None,sht)  # 参数:Copy(Before,After) 
        # 复制工作表
    sht.UsedRange.Rows(1).Copy(sht.Range('F2')
        # 将已用区域的第一行数据复制到从F2开始的单元格区域(自动扩展)
    
    sht.Range("B2:K2").Value = [i for i in range(1,11)]
        # 同一行赋值
        
    func = excel.Application.WorksheetFunction.Transpose
        # VBA中的转置函数
    
    sht.Range("B2:B11").Value = list(zip([i for i in range(1,11)]))
        # 同一列赋值 变为多行一列
    sht.Range("B2:B11").Value = func([i for i in range(1,11)])
        # 同上
    
    sht.Range('f1:h1').Value = func(sht.Range('b3:b5').Value)
        # 同一行赋值 将列中的值倒置
        
    sht.Range("B2:E4").Value = sht.Range("B6:E8").Value
        # 多维 对 多维
        
    # FormatConditions: 条件格式 参见VBA
    
    sht.Range("B2:K33").Select()
    excel.Selection.FormatConditions.AddColorScale(ColorScaleType = 3)
        # 添加三色度渐变刻度 二色度参数为2
    
    rng = sht.UsedRange
    CON = win32.constants
    rng.FormatConditions.Add(CON.xlCellValue,CON.xlEqual,'A')  # 值 等于A
        # sht/wb 无FormatConditions属性
    rng.FormatConditions(rng.FormatConditions.Count).Interior.ColorIndex = 3
        # 给前面新建的添加格式 前面新建的在最末
      或:
    fmt = rng.FormatConditions.Add(CON.xlCellValue,CON.xlEqual,'A')
    fmt.Interior.ColorIndex = 3
    fmt.Border  # 抛异常      
    excel.Selection.FormatConditions(excel.Selection.FormatConditions.Count).SetFirstPriority()
    
    [csc1,csc2,csc3] = [excel.Selection.FormatConditions(1).ColorScaleCriteria(n) for n in range(1,4)]
    csc1.Type = win32.constants.xlConditionValueLowestValue
    csc1.FormatColor.Color = 13011546
    csc1.FormatColor.TintAndShade = 0
    
    # AddComment 添加批注
    sht.Cells(1).AddComment("abc")      # 同一地址不能重复添加
    sht.Cells(1).Comment.Visible = True # 批注显示或隐藏
    sht.Cells(1).Comment.Text('ppp')    # 更改批注内容
    sht.Cells(1).Comment.Delete()       # 删除
    
    # AutoFilter 自动筛选
    sht.AutoFilterMode = False  # 去掉原来的筛选
    sht.UsedRange.Columns(5).AutoFilter(1,"=C")
        # 参见VBA
        
    # FileDialog 文件对话框--->返完整路径
    fdag = excel.Application.FileDialog(3) 
        # 参数: 3:文件选择 设置后可多选
                 4:文件夹选择
                 1:文件打开
    fdag.AllowMultiselect= True # 多选设置 文件夹时无效
    if fdag.show  == -1:        # 对话框点"确定"时返-1
        print(list(fdag.SelectedItems))  # 选择结果
    
    # PageSetup 页面设置
    pgs = sht.PageSetup
    pgs.Zoom = 150  # 缩放比例 10--400% 之间
    pgs.PrintArea = sht.UsedRange.Address  # 打印区域
    pgs.Orientation = win32.constants.xlLandscape  
        # 横向打印  纵向为:xlPortrait
    sht.PrintPreview(True) # 打印预览
    

    将工作表转化为JSON

    import _wh_lib as wh
    import json
    
    wps = win32.gencache.EnsureDispatch('Excel.Application')
    wps.Visible = True
    
    wb = wps.Workbooks.Open('D:\ABC分析.xls')
    sht = wb.Worksheets(1)
    rows = sht.UsedRange.Rows
    
    res = list()
    json.encoder.FLOAT_REPR = lambda x:format(x,'.4f') 
        # 设置小数位
    with wh.TimeTest():
        #--------------------------
        keys = rows(2).Value[0]  # 列表元素为字典的key
            # rows的参数从1开始
        for i in range(3,len(rows)):
            res.append(OrderedDict(zip(keys,rows(i).Value[0])))
        
        s = json.dumps(res,indent=4,ensure_ascii=False)
        print(s)        
        # -------下面的算法快得多-----
        # vals = sht.UsedRange.Rows.Value  # 一次获取全部值
        # keys = vals[1]  # 列表从0开始计数
        # for row in range(2,len(vals)): 
            # res.append(OrderedDict(zip(keys,vals[row])))
    
        # s = json.dumps(res,indent=4,ensure_ascii=False)
        # print(s)
    
    展开全文
  • win32com excel转pdf

    千次阅读 2021-11-12 17:30:55
    from win32com.client import DispatchEx import os from PyPDF2 import PdfFileReader, PdfFileWriter #import time import win32process import win32api import win32con 近来因为某些原因,需要将遍历一个双层...

    需要用到库

    from win32com.client import DispatchEx
    import os
    from PyPDF2 import PdfFileReader, PdfFileWriter
    #import time
    import win32process
    import win32api
    import win32con

    近来因为某些原因,需要将遍历一个双层文件夹,向里面的excel插入图片,并打印出来。

    所谓双层:

            即文件夹下包文件夹,类似于这种,对于数据整理来说十分方便,但要一个个去处理就太繁琐了,于是我写了一串代码。

    原理

    首先先遍历文件夹,获得文件夹下所有子级文件夹,然后再遍历子级文件夹,获得其中的excel文件,(因为权限原因,我不能直接修改excel,所以我建立了将之复制到新的excel进行操作),插入签名,再转换成pdf文件,以xlsx的名字命名,存在同一个文件夹下。

    代码

     

    img1=r'C:\Users\rz\Desktop\cc.jpg'           #精英干员瑕光嗷
    img2=r'C:\Users\rz\Desktop\hh.jpg' 
    #👆两个签名
    file_path=r'C:\Users\rz\Desktop\新建文件夹'
    
    def find_excel(file_path,img1,img2):                      #遍历文件夹
        folder=os.listdir(file_path)
        for f in folder:
            a,b=(os.path.splitext(f))
            if not b:                                #找到文件夹
                target_path=(os.path.join(file_path,f))
                
                if os.listdir(target_path)==[]:        #无甚么大用的判断,排除空文件夹
                    continue
                else:
                    folder_0=os.listdir(target_path)         #遍历子级文件夹
                    for gg in folder_0:
                        a,b=os.path.splitext(gg)
                        if b in ['.xlsx','.xls','.xlsm']:
                            path=os.path.join(target_path,a+b)        #找到目标文件
                            
                            turn_pdf(path,img1,img2,a,target_path)
                            
    def remove_excel(new_sheet,ws):
            
        last_line=ws.Range("B900").End(-4162).Row
        last_trace=new_sheet.Range("B900").End(-4162).Row    
        ws.Range('A1:U%d'%last_line).Copy(new_sheet.Range('A1'))
        return new_sheet
        
        
                        
    def turn_pdf(source_path,img1,img2,last_name,target_path):             #将excel转pdf
                                                                 #为防止上一份excel格式影响,每次重新新建
    
        xlApp = DispatchEx("Excel.Application")
        xlApp.Visible = True
        new_excel = xlApp.Workbooks.Add()
        new_sheet=new_excel.Worksheets(1)
        
        books = xlApp.Workbooks.Open(source_path)
        print(source_path)
        ws=books.Worksheets(1)
        
        remove_excel(new_sheet,ws)
        
        last_line=new_sheet.Range("B900").End(-4162).Row
        picture_top = new_sheet.Cells(2,7).Height *int(last_line+2)           #行,列
         
        target_name=os.path.join(target_path,last_name)                  
        
        new_sheet.Shapes.AddPicture(img1,1,1,new_sheet.Cells(8,5).Width*6,picture_top,200,200) #左边,顶边,宽度,高度
        new_sheet.Shapes.AddPicture(img2,1,1,new_sheet.Cells(8,5).Width*17,picture_top,200,200) #左边,顶边,宽度,高度
        
        new_sheet.PageSetup.Zoom = False
        new_sheet.PageSetup.FitToPagesTall = False
        new_sheet.PageSetup.FitToPagesWide = 1
        
        new_sheet.ExportAsFixedFormat(0, target_name)    #0保存为pdf文件,1保存为XPS文件
        books.Close(0)
        new_excel.Close(0)
        xlApp.Quit()    
        close_excel_by_force(xlApp)
        del xlApp
    
    
    
    def close_excel_by_force(excel):                        #关闭进程
        
        # Get the window's process id's
        hwnd = excel.Hwnd
        t, p = win32process.GetWindowThreadProcessId(hwnd)
        # Ask window nicely to close  
        try:
            handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0, p)
            if handle:
                win32api.TerminateProcess(handle, 0)
                win32api.CloseHandle(handle)
        except:
            pass
    
    find_excel(file_path,img1,img2)
    
    print('转换完毕!')
    

    展开全文
  • windows 安装 win32 win32com模块

    千次阅读 2019-05-23 21:37:13
    其它方式并不奏效,可以使用如下方式: python -m pip install pypiwin32

    其它方式并不奏效,可以使用如下方式:

    python -m pip install pypiwin32

     

    展开全文
  • win32com 读取excel

    千次阅读 2019-09-26 17:14:08
    使用 win32com 读取excel def open_excel(path,open_password,write_password): #载入Excel xlApp=win32com.client.Dispatch("Excel.Application") ''' 设置是否打开Excel True:Excel可见 Fasle:Excel不可见 ....
  • 按照正常操作安装了pypiwi32,win32com可以导入但是其中的win32api无法导入 报错: >>> import win32com.client as win32 Traceback (most recent call last): File "<pyshell#9>", line 1, in ...
  • pywin32+excel(一)——Python使用win32com/pywin32操作excel

    千次阅读 多人点赞 2020-08-15 11:37:30
    正式使用 一千个读者一千个哈姆雷特,单纯 save()...excel = win32.Dispatch('Excel.Application') excel.Visible = False # 如果是True 会打开excel程序(界面) excel.DisplayAlerts = 0 # 不显示警告信息 wb = exce
  • 这两天研究python操作...实现的内容打开word文档读取表格表格插入行向表格中填写内容文档另存为环境python 2.7文件保存的编码格式是utf-8代码#模块引用import win32comform win32com.client import Dispatch,Dispa...
  • what’s the win32com 模块 win32com 模块主要为 Python 提供调用 windows 底层组件对 word 、Excel、PPT 等进行操作的功能,只能在 Windows 环境下使用,并且需要安装 office 相关软件才行(WPS也行)。 使用 win32...
  • Python win32com模块安装

    万次阅读 多人点赞 2019-04-08 23:19:09
      Python语音识别------speech模块------win32com模块   但是在cmd中输入pip install win32com安装不成功。   解决办法:输入python -m pip install pypiwin32进行安装,成功解决。 ...
  • python模块:win32com用法详解

    万次阅读 2019-05-22 10:48:16
    import win32com from win32com.client import Dispatch, constants w = win32com.client.Dispatch('Word.Application') # 或者使用下面的方法,使用启动独立的进程: # w = win32com.client.DispatchEx('Word....
  • python安装win32com模块

    千次阅读 2021-01-18 15:37:47
    如果直接pip installl win32com可能找不到安装包。 若要使用win32com模块,则可以使用pip install win32com命令: 安装完后,在python文件中就能使用win32com模块了。
  • python win32com模块

    万次阅读 2016-10-19 20:05:34
    当时真的是震惊了,仔细看了下脚本内容,里面用到了一个关键模块win32com,这里在网上找到了一些大神们总结的该模块用法,码来一起学习!! import win32com  from win32com.client import Di
  • Python通过win32 com接口操作word

    千次阅读 2018-11-02 10:22:12
    Python通过win32 com接口操作word WORD中最重要的概念有几个: Application - 这个毫无疑问是我们的WORD应用程序 Document - 这个就是一个打开的文档对象 Range - 这个东东必须要好好利用,基本上所有对象都是有...
  • python模块win32com用法详解

    千次阅读 2021-02-09 05:40:53
    python模块:win32com用法详解使用技巧import win32comfrom win32com.client import Dispatch, constantsw = win32com.client.Dispatch('Word.Application')# 或者使用下面的方法,使用启动独立的进程:# w = win32...
  • 文章目录4.1.1 pip安装win32com4.1.2 win32com操作word4.1.3 win32com转换word为pdf等格式 win32com 模块主要为 Python 提供调用 windows 底层组件对 word 、Excel、PPT 等进行操作的功能,只能在 Windows 环境下...
  • 安装win32com

    万次阅读 2017-10-09 11:40:13
    方法一:python -m pip install pypiwin32,这个方法会安装“pypiwin32”,而这个模块就包含了win32com 方法二:到官网https://pypi.python.org/pypi/pywin32/214,进入download界面下载pywin32,(进入“build”,...
  • win32com 读doc,doc表格

    千次阅读 2018-06-04 16:33:08
    #coding:utf-8import osimport win32comimport win32com.client as win32from Ltp import ltp_dbfrom win32com.client import Dispatch, constants#获取相对路径下所有word名称def listdir(path, list_name): for ...
  • 调研-python使用win32com模块操纵excel

    千次阅读 2020-08-06 17:03:29
    支持库pypiwin32中含有win32com模块,安装(这个 pypiwin32没有github项目,主页:pypiwin32。 > pip install pypiwin32 // 我是使用这种最简单的方式安装完成的 > python -m pip install pypiwin32 // 可能...
  • win32com.client.Dispatch()函数用法

    千次阅读 2020-12-11 07:19:50
    该楼层疑似违规已被系统折叠隐藏此楼查看此楼这里有个Word的,,,供你参考:要使用Python控制MS Word,您需要先安裝win32com套件,這個套件可以到 http://sourceforge.net/projects/pywin32/找到。本文假設您已經正...
  • python调用 ole:win32com用法详解

    千次阅读 2019-09-20 14:49:49
    要使用win32com需要安装win32模块 我是通过pip install pypiwin32安装的(安装文件是pypiwin32而不是pywin32) 很多函数需要用到word里面自带常量,这就需要通过 # -*- coding: utf-8 -*- import os from win32...
  • 文章目录5.1.1 pip安装win32com5.1.2 win32com复制ppt模板 win32com PowerPoint 官方文档:https://docs.microsoft.com/zh-cn/office/vba/api/powerpoint.shape.copy 5.1.1 pip安装win32com pip install pypiwin32 ...
  • Python win32com 操作Excel简单方法

    千次阅读 2019-09-04 18:21:37
    from win32com.client import Dispatch import win32com.client class easyExcel: """A utility to make it easier to get at Excel. Remembering to save the data is your problem,...
  • 1、先pip安装pywin32 pip install pywin32 2、这份代码最好和你的PPT文件放在同一目录下,且目录不能有中文名。如果要放在别的地方看代码注释,效果图如下: 图中文件夹是最后生成的,这里还没弄完。此外PPT...
  • 如何使用 win32com 操作excel 入坑

    千次阅读 2020-12-16 14:51:24
    app打开方式的区别:...win32com 文档:http://timgolden.me.uk/pywin32-docs/contents.html 使用win3..
  • win32com 处理word和excel文档说明

    千次阅读 2019-03-12 11:06:25
    import win32com from win32com.client import Dispatch, constants w = win32com.client.Dispatch('Word.Application') # 或者使用下面的方法,使用启动独立的进程: # w = win32com.client.DispatchEx('Word....
  • Python:win32com 模块

    千次阅读 2020-03-04 19:33:45
    win32com 模块主要为 Python 提供调用 windows 底层组件对 word、Excel、PPT 等进行操作的功能,只能在 Windows 环境下使用,并且需要安装 office 相关软件才行(WPS也行)。  使用 win32com 模块主要是因为 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 381,807
精华内容 152,722
关键字:

win32com

友情链接: Gotchas.rar