zoukankan      html  css  js  c++  java
  • 吴裕雄 实战PYTHON编程(7)

    import os

    from win32com import client

    word = client.gencache.EnsureDispatch('Word.Application')
    word.Visible = 1
    word.DisplayAlerts = 0
    doc = word.Documents.Add()
    range1 = doc.Range(0,0) #文件起始处
    range1.InsertAfter("这是测试第一行 这是测试第二行 ")
    range1.InsertAfter("这是测试第三行 这是测试第四行 ")
    range1.InsertBefore("第一次插入到文件最前方 ")
    range1.InsertBefore("再次插入到文件最前方 ")
    # cpath = os.path.dirname(__file__)
    doc.SaveAs("F:\pythonBase\pythonex\test1.docx")
    doc.Close()
    word.Quit()

    import os

    from win32com import client

    word = client.gencache.EnsureDispatch('Word.Application')
    word.Visible = 0
    word.DisplayAlerts = 0
    # cpath=os.path.dirname(__file__)
    doc = word.Documents.Open("F:\pythonBase\pythonex\test1.docx")
    print(doc.Content)
    doc.Close()
    word.Quit()

    import os

    from win32com import client

    word = client.gencache.EnsureDispatch('Word.Application')
    word.Visible = 0
    word.DisplayAlerts = 0
    doc = word.Documents.Open("F:\pythonBase\pythonex\test1.docx")
    paragraphs = doc.Paragraphs
    for p in paragraphs:
    text = p.Range.Text.strip()
    print(text)
    doc.Close()
    word.Quit()

    import os

    from win32com import client

    word = client.gencache.EnsureDispatch('Word.Application')
    word.Visible = 0
    word.DisplayAlerts = 0
    doc = word.Documents.Open("F:\pythonBase\pythonex\test1.docx")
    paragraphs = doc.Paragraphs
    print("第一段:" + paragraphs(1).Range.Text.strip())
    print("第三段:" + paragraphs(3).Range.Text.strip())
    doc.Close()
    word.Quit()

    import os
    import time

    from win32com import client
    from win32com.client import constants

    word = client.gencache.EnsureDispatch('Word.Application')
    word.Visible = 1
    word.DisplayAlerts = 0
    doc = word.Documents.Open("F:\pythonBase\pythonex\test1.docx")
    paragraphs = doc.Paragraphs
    range1 = paragraphs(1).Range #第1段
    range1.Style = constants.wdStyleHeading1
    range1.Style.Font.Name = "标楷体"
    range1.Style.Font.Color = 0xFF0000 #蓝色
    range1.Style.Font.Bold = 1 #Italic, Underline, Shadow, Outline

    range2 = paragraphs(2).Range #第2段
    range2.Style = constants.wdStyleHeading3
    range2.ParagraphFormat.Alignment = constants.wdAlignParagraphRight

    range3 = paragraphs(3).Range #第3段
    range3.Style.Font.Size = "10"
    doc.Close()
    word.Quit()
    time.sleep(3)

    import os
    from win32com import client

    word = client.gencache.EnsureDispatch('Word.Application')
    word.Visible = 1
    word.DisplayAlerts = 0
    doc = word.Documents.Open("F:\pythonBase\pythonex\08\clipgraph.docx")
    data = [ ["型号", "尺寸", "颜色", "价格"], ["A8", "5.0英寸", "白色", "8000"],["A10", "5.5 英寸", "金黄", "22000"] ]
    paragraphs = doc.Paragraphs #读取所有段落
    range1 = paragraphs(4).Range #取第4段的起止范围
    table = doc.Tables.Add(range1, 3, 4) #在第4段之前插入一个3行4列表格
    for i in range(1,table.Rows.Count+1): #i取值分别为1~3。切记rang()函数的特性
    print(i)
    # for j in range(1,table.Columns.Count+1): #j取值分别为1~4
    # table.Cell(i,j).Range.Text = data[i-1][j-1] #第一次会把data[0][0],即"型号",插入Cell(1,1)
    #table.Cell(2,3).Range.Font.Color = 0x0000FF #设置第2行第3列单元格的字体颜色
    #doc.Close()
    #word.Quit()

    import os
    from win32com import client

    word = client.gencache.EnsureDispatch('Word.Application')
    word.Visible = 1
    word.DisplayAlerts = 0
    doc = word.Documents.Open("F:\pythonBase\pythonex\clipgraph.docx")
    paragraphs = doc.Paragraphs
    range1 = paragraphs(4).Range
    range1.InlineShapes.AddPicture(cpath + "F:\pythonBase\pythonex\ch08\media\cell.jpg", False, True)
    #doc.Close()
    #word.Quit()

    import os
    from win32com import client as client
    from win32com.client import constants
    word = client.gencache.EnsureDispatch('Word.Application')
    word.Visible = 1
    word.DisplayAlerts = 0
    cpath=os.path.dirname(__file__)
    doc = word.Documents.Open(cpath + "\media\clipgraph.docx")
    word.Selection.Find.ClearFormatting()
    word.Selection.Find.Replacement.ClearFormatting()
    word.Selection.Find.Execute("方法",False,False,False,False,False,True,constants.wdFindContinue,False,"method",constants.wdReplaceAll)
    #doc.Close()
    #word.Quit()

    def getrandom2(n1, n2): #取得2个不重复的随机值
    while True:
    r1 = random.randint(n1, n2)
    r2 = random.randint(n1, n2)
    if r1 != r2: #如果两数不相等就跳出,相等则继续取
    break
    return r1, r2

    import os, random
    from win32com import client
    from win32com.client import constants
    word = client.gencache.EnsureDispatch('Word.Application')
    word.Visible = 1
    word.DisplayAlerts = 0 #不显示警告
    doc = word.Documents.Add()
    range1 = doc.Range(0,0) #文件开头
    range1.Style.Font.Size = "16" #字体大小
    title = "明星小学营养午餐菜单"
    year1 = "2017年8月"
    week = ["一","二","三","四","五"]
    teacher = ["欧阳怡","翟定国","陈碧山","陈丽娟","郑怡衡","林邓超","朱健政","刘伟明","刘维基","梁银燕"]
    rice = ["糙米饭","白米饭","拌面"]
    vegetable = ["毛豆白菜","豆芽菜","蛋香时瓜","高丽菜","佛手瓜","酸菜豆包","冬瓜","萝卜海带结","茄汁洋芋","家常豆腐","鲜菇花椰","豆皮三丝","伍彩雪莲","干香根丝","茄汁豆腐","香炒花椰","芹香粉丝","红萝卜","洋葱","青椒"]
    meat = ["糖醋排骨","美味大鸡腿","椒盐鱼条","香菇肉燥","宫保鸡丁","香卤腿排","梅干绞肉","香酥鱼丁","条瓜烧鸡","时瓜肉丝","海结卤肉","葱烧鸡","柳叶鱼","咖哩绞肉","笋香鸡","沙茶猪柳","五香棒腿","三杯鸡丁","海结猪柳","茄汁鸡丁"]
    soup = ["蛋香木须汤","味噌海芽汤","绿豆汤","榨菜肉丝汤","姜丝海芽汤","枸杞爱玉汤","冬菜蛋花汤","冬瓜西米露","紫菜蛋花汤","蛋香木须汤"]
    date1= 1 #开始日期为1日
    weekday = 2 #开始日期为星期六

    while weekday < 6 and date1 < 31: #周一到周五及30日前才制作菜单
    range1.InsertAfter(title + " ")
    range1.InsertAfter("日期:" + year1 + str(date1) + "日 (星期" + week[weekday-1] + ") ")
    range1.InsertAfter("制作者:" + teacher[random.randint(0,9)] + "老师 ") #10位老师中随机选一位
    range1.InsertAfter("今日菜单: ")
    range1.InsertAfter("一、" + rice[random.randint(0,2)] + " ") #取1个随机数作为主食列表下标
    rand1, rand2 = getrandom2(0,19) #取得两个随机数,作为菜品列表下标
    range1.InsertAfter("二、" + vegetable[rand1] + " ")
    range1.InsertAfter("三、" + vegetable[rand2] + " ")
    rand1, rand2 = getrandom2(0,19) #重取两个随机数,作为肉品列表下标
    range1.InsertAfter("四、" + meat[rand1] + " ")
    range1.InsertAfter("五、" + meat[rand2] + " ")
    range1.InsertAfter("六、" + soup[random.randint(0,9)] + " ") #取一个随机数,作为汤品列表下标
    range1.Collapse(constants.wdCollapseEnd) #移到range尾
    range1.InsertBreak(constants.wdSectionBreakNextPage) #换页
    weekday += 1 #星期加1
    date1 += 1 #日期加1
    if weekday == 6: #如果是星期六
    weekday = 1 #设为星期一
    date1 += 2 #日期加2(星期六及星期日)

    cpath=os.path.dirname(__file__)
    doc.SaveAs(cpath + "\media\food.docx") #获取文件保存路径并把文件保存为food.docx
    #doc.Close()
    #word.Quit()

    import os
    from win32com import client
    from win32com.client import constants
    word = client.gencache.EnsureDispatch('Word.Application')
    word.Visible = 0
    word.DisplayAlerts = 0
    runpath = os.path.dirname(__file__) + "\replace" #获取replace文件夹的路径
    tree = os.walk(runpath) #取得目录树
    print("所有 Word 文件:")
    for dirname, subdir, files in tree:
    allfiles = []
    for file in files: # 取得所有.docx .doc文件,存入allfiles列表中
    ext = file.split(".")[-1] #取得文件名后缀
    if ext=="docx" or ext=="doc": #取得所有.docx .doc文件
    allfiles.append(dirname + '\' + file) #加入allfiles列表

    if len(allfiles) > 0: #如果有符合条件的文件
    for dfile in allfiles:
    print(dfile)
    doc = word.Documents.Open(dfile) #打开文件
    word.Selection.Find.ClearFormatting()
    word.Selection.Find.Replacement.ClearFormatting()
    word.Selection.Find.Execute("方法",False,False,False,False,False,True,constants.wdFindContinue,False,"method",constants.wdReplaceAll)
    doc.Close()
    word.Quit()

  • 相关阅读:
    70. 爬楼梯
    278. 第一个错误的版本
    88. 合并两个有序数组
    C++string与int的相互转换(使用C++11)
    108. 将有序数组转换为二叉搜索树
    102. 二叉树的层次遍历
    101. 对称二叉树
    98. 验证二叉搜索树
    ServletContext对象
    ServletConfig对象
  • 原文地址:https://www.cnblogs.com/tszr/p/10061326.html
Copyright © 2011-2022 走看看