主要记一下Python对办公文件的简单处理,如word、excel、pdf、csv及ppt。因为内容比较多,不细究原理了,直接写应用吧~

Word

  1. 写入Word文件。注:使用了win32com模块,只能在win系统下使用...

    import win32com
    import win32com.client
    import os
    def makeWord(fileName,name):# 打开word应用程序word=win32com.client.Dispatch("Word.Application")#让文档可见word.Visible=True#创建文档doc=word.Documents.Add()#写内容,从头开始r=doc.Range(0,0)#开始插入内容r.InsertAfter("有人喜欢小溪,是因为没见过大海。")r.InsertAfter("我看过银河,可我只爱一粒星--"+name)#存储文件
        doc.SaveAs(path)#关闭文件
        doc.Close()#退出word
        word.Quit()names=["张三","李四","王五"]
    for name in names:#获取当前绝对路径来存放文件path=os.path.join(os.getcwd(),name)makeWord(path,name)

  2. 读取Word文件
    import win32com
    import win32com.client
    import osdef readWord(path):#调用系统word功能,可以处理doc和docx文件mw=win32com.client.Dispatch("Word.Application")#打开文件doc=mw.Documents.Open(path)for par in doc.Paragraphs:line=par.Range.Textprint(line)#关闭
        doc.Close()#退出word
        mw.Quit()path = os.path.join(os.getcwd(),'张三.docx')
    readWord(path)#有人喜欢小溪,是因为没见过大海。我看过银河,可我只爱一粒星--张三

Excel

  1. 写入xls文件  注:这里使用了pyexcel_xls,需要另行安装(pip install pyexcel_xls)

    #有序字典
    from collections import OrderedDict
    from pyexcel_xls import save_datadef makeExce(path,data):#有序字典dic = OrderedDict()for sheetName,sheetValue in data.items():d = {}d[sheetName] = sheetValue#此格式的有序字典,sheetName为子表名,sheetValue为表中的数据
            dic.update(d)#保存
        save_data(path,dic)path = r"C:\Users\Administrator\Desktop\make.xls"
    #只能写xls格式的excel文件
    makeExce(path,{"表1":[[1,2,3],[4,5,6]],"表2":[[11,22,33],[44,55,66]]})

  2. 读取xls 或 xlsx文件
    from collections import OrderedDict
    from pyexcel_xls import get_datadef readXls(path):dic=OrderedDict()#抓取数据xdata=get_data(path)for sheet in xdata:dic[sheet]=xdata[sheet]#返回的是有序字典return dicpath=r"C:\Users\Administrator\Desktop\make.xls"
    dic=readXls(path)
    print(dic['表1'][1])#[4, 5, 6]

PPT

  1. 写入PPT

    import win32com
    import win32com.clientdef makePpt(path):ppt = win32com.client.Dispatch("PowerPoint.Application")# 让文档可见ppt.Visible = True#增加一个文件pptFile = ppt.Presentations.Add()#创建页 参数1为页数(从1开始)参数2为类型(主题)page1 = pptFile.Slides.Add(1,1)t1 = page1.Shapes[0].TextFrame.TextRanget1.Text = "sunck"t2 = page1.Shapes[1].TextFrame.TextRanget2.Text = "sunck is a good man"#保存
        pptFile.SaveAs(path)pptFile.close()ppt.Quit()path=r"C:\Users\Administrator\Desktop\make.ppt"
    makePpt(path) 

CSV

  1. 写csv文件

    import csvdef writeCsv(path,data):#使用这个newline=""可以解决win下自动添加空行的问题with open(path, "w",newline="") as f:writer = csv.writer(f)for row in data:#整行写入,这里是二维列表,一个一维列表写为一行
                writer.writerow(row)path = r"C:\Users\Administrator\Desktop\make.csv"
    data = [['admin','admin','admin'],['byadmin','byadmin','byadmin'],['byadmin','byadmin','byadmin']]
    writeCsv(path,data)

  2. 读取csv文件

      

    import csvdef readCsv(path):contentList = []with open(path,"r") as f:allFileInfo = csv.reader(f)for row in allFileInfo:contentList.append(row)return contentList
    path = r"C:\Users\Administrator\Desktop\make.csv"
    print(readCsv(path)) #[['admin', 'admin', 'admin'], ['byadmin', 'byadmin', 'byadmin'], ['byadmin', 'byadmin', 'byadmin']]

PDF

  1. 读PDF  PDF转TXT需安装pdfminer3k(pip install pdfminer3k)

    import sys
    import importlib
    importlib.reload(sys)from pdfminer.pdfparser import PDFParser,PDFDocument
    from pdfminer.pdfinterp import PDFResourceManager,PDFPageInterpreter
    from pdfminer.converter import PDFPageAggregator
    from pdfminer.layout import LTTextBoxHorizontal,LAParams
    from pdfminer.pdfinterp import PDFTextExtractionNotAlloweddef readPdf(path,toPath):f=open(path,"rb")#创建一个pdf文档分析器parser=PDFParser(f)#创建一个PDF文档pdfFile=PDFDocument()#连接分析器与文档对象
        parser.set_document(pdfFile)pdfFile.set_parser(parser)#提供初始化密码
        pdfFile.initialize()#检测文档是否提供txt转换if not pdfFile.is_extractable:raise PDFTextExtractionNotAllowedelse:#解析数据#数据管理器manager=PDFResourceManager()#创建一个PDF设备的对象laparams=LAParams()device=PDFPageAggregator(manager,laparams=laparams)#解析器对象interpreter=PDFPageInterpreter(manager,device)#开始循环处理,每次处理一页for page in pdfFile.get_pages():interpreter.process_page(page)#处理图层layout=device.get_result()for x in layout:if (isinstance(x,LTTextBoxHorizontal)):with open(toPath,"a") as f:str=x.get_text()#print(str)f.write(str+"\n")path=r"C:\Users\Administrator\Desktop\英语语法.pdf"
    toPath=r"C:\Users\Administrator\Desktop\res.txt"
    #从pdf文件提取字符保存到txt文件
    readPdf(path,toPath)

      

转载于:https://www.cnblogs.com/byadmin/articles/useful-1.html

Python3--自动化办公相关推荐

  1. python自动化办公入门书籍推荐-盘点使用Python进行自动化办公所需要的知识点

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

  2. python自动化办公培训排名-盘点使用Python进行自动化办公所需要的知识点

    三军可夺帅也,匹夫不可夺志也. 知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动 ...

  3. python自动化办公:邮件篇 (定时邮件问候女票so easy)

    前言和准备工作 如果你能找到一个要看邮件的女票哈,本文能帮你用程序实现在每天不同时间段给女友定时给女友发消息,不错过早上,中午.晚安! 而你自己却可以玩游戏,不管这回事. 你告诉我看邮件的女生少,别着 ...

  4. python自动化办公:word篇。职场高手不是梦。

    工具包安装 使用的库:docx python 没有自带.需要安装. 若运行出现:ModuleNotFoundError: No module named 'exceptions' 则说明安装失败,需要 ...

  5. python自动化办公知识点整理汇总_Python自动化办公知识点整理汇总

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? ​ 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量 ...

  6. Python自动化办公知识点整理汇总

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人 ...

  7. python自动化_python自动化办公?学这些就够用了

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手? python在自动化办公领域越来越受欢迎,批量处 ...

  8. python自动化办公入门书籍-盘点使用Python进行自动化办公所需要的知识点

    知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理 ...

  9. python自动化办公都能做什么-盘点使用Python进行自动化办公所需要的知识点

    三军可夺帅也,匹夫不可夺志也. 知乎上有人提问:用python进行办公自动化都需要学习什么知识呢? 这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动 ...

  10. python怎么自动化录入数据_Python自动化办公之–读取Excel 录入表单

    前言 本篇内容,让你完全掌握Python是如何自动化办公的~ 一.环境准备 1.1  Python 3.7.0 1.2  Pycharm  (Python 开发工具) 1.3 Selenium    ...

最新文章

  1. 前端Vue学习之路(五)插件的使用
  2. 遗传算法解决01背包
  3. Linux makefile 教程
  4. Android jdbc连接mysql报错解决方案 (Communications link failure)
  5. Linux下安装Jboss
  6. java中isolate时间_flutter/dart里面,一个isolate一般heap多大?
  7. vim配置文件~/.vimrc
  8. AI算法的进步超越了摩尔定律!
  9. MySQL架构与历史【v1】【励志把高性能MySQL吃掉】
  10. Spring MVC 学习总结(五)——校验与文件上传
  11. 【Docker容器】进入容器的2种方式
  12. ACAD shx字体格式之BigFont
  13. python题目58:工厂流水线调度
  14. 泰灏咨询的使命及愿景
  15. excel几个表合成一张_excel多表如何合并到一张表格
  16. nbu新增media server过程简介
  17. Java调用百度/高德地图API实现根据经纬度查地名
  18. 苹果计算机做视频教程,Mac版Final Cut Pro x使用技巧及视频教程
  19. 70.爬楼梯(简单)
  20. 运营推广一款新的app到底需要哪些完整步骤?

热门文章

  1. 【译】Look-ahead Staking in Qtum - What does that even mean?
  2. 【译】Getting Started With Ethereum and Building Basic Dapp — Part 1
  3. Android 插件化原理解析——Activity生命周期管理
  4. Ubuntu系统如何安装nodejs及npm
  5. mysql试题百度云_BATJ大厂600多道技术面试题及答案解析
  6. php mysql 获取错误_php怎样获取mysql错误信息
  7. python简单可视化聊天界面_如何用Python制作可视化输入界面
  8. tcga数据下载_TCGA数据下载(mRNA)
  9. hdu3691(无向图最小割的求解)
  10. [加强版] Codeforces 835D Palindromic characteristics (回文自动机、DP)