基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)


Posted in Python onAugust 06, 2019

1、CSV

(1)写csv文件

import csv


def writecsv(path,data):
  with open(path, "w") as f:
    writer = csv.writer(f)
    for rowData in data:
      print("rowData=", rowData)
      writer.writerow(rowData)

path = r"E:\\Python\\py17\\automatictext\\000001.csv"
writecsv(path, [[1, 2, 3], [4, 5, 6], [7, 8, 9]])

(2)读csv文件

import csv
def readcev(path):
  infolist = []
  with open(path, "r") as f:
    allFile = csv.reader(f)
    for row in allFile:
      infolist.append(row)
  return infolist


path = r"E:\\Python\\py17\\automatictext\\PCB3.csv"
info = readcev(path)

2、word文件

(1)读word文件

import win32com
import win32com.client


def readWordFile(path):
  # 调用系统word功能,可以处理doc和docx两种文件
  mw = win32com.client.Dispatch("Word.Application")
  # 打开文件
  doc = mw.Documents.Open(path)
  for paragraph in doc.Paragraphs:
    line = paragraph.Range.Text
    print(line)
  doc.Close()
  mw.Quit()


path = r"E:\\Python\\py17\\Keyboardtext\\001.docx"
readWordFile(path)

(2)读取doc并写入word

import win32com
import win32com.client


def readWordFiletootherFile(path, topath):
  mw = win32com.client.Dispatch("Word.Application")
  doc = mw.Documents.Open(path)
  # 将word的数据保存在另一个文件
  doc.SaveAs(topath, 2)
  doc.Close()
  mw.Quit()


path = r"E:\\Python\\py17\\Keyboardtext\\001.docx"
topath = r"E:\\Python\\py17\\Keyboardtext\\a.txt"

readWordFiletootherFile(path, topath)

(3)创建word文件

import win32com
import win32com.client
import os


def makeWordFile(path, name):
  word = win32com.client.Dispatch("Word.Application")
  # 让文档可见
  word.Visible = True
  # 创建文档
  doc = word.Documents.Add()
  # 写内容从头开始写
  r = doc.Range(0, 0)
  r.InsertAfter("你好," + name + "\n")
  r.InsertAfter("python\n")
  # 存储文件
  doc.SaveAs(path)
  doc.Close()
  word.Quit()


names = ["张三", "李四", "王五"]
for name in names:
  path = os.path.join(os.getcwd(), name)
  makeWordFile(path, name)

3、Excel

(1)写xls文件

# 有序字典
from collections import OrderedDict
# 存储数据
from pyexcel_xls import save_data


def makeExcelFile(path, data):
  dic = OrderedDict()
  for sheetNum, sheetValue in data.items():
    d = {}
    d[sheetNum] = sheetValue
    dic.update(d)

  save_data(path, dic)


path = r"E:\\Python\\py17\\automatictext\\b.xlsx"
makeExcelFile(path, {"表1": [[1, 2, 3], [4, 5, 6], [7, 8, 9]],
           "表2": [[11, 22, 33], [44, 55, 66],
              [77, 88, 99]]})

(2)读xls文件

from openpyxl.reader.excel import load_workbook


def readXlsxFile(path):
  file = load_workbook(filename=path)
  print(file.get_sheet_names)
  sheets = file.get_sheet_names()
  sheet = file.get_sheet_by_name(sheets[0])
  for lineNum in range(1, sheet.max_row + 1):
    lineList = []
    print(sheet.max_row, sheet.max_column)
    for columnNum in range(1, sheet.max_column + 1):
      # 拿数据
      value = sheet.cell(row=lineNum,
                column=columnNum).value
      if value != None:
        lineList.append(value)
    print(lineList)


path = r"E:\\Python\\py17\\automatictext\\001.xlsx"
readXlsxFile(path)

(3)返回xls数据

from openpyxl.reader.excel import load_workbook


def readXlsxFile(path):
  dic = {}
  file = load_workbook(filename=path)
  sheets = file.get_sheet_names()
  print(len(sheets))
  for sheetName in sheets:
    sheet = file.get_sheet_by_name(sheetName)
    # 一张表的所有数据
    sheetInfo = []
    for lineNum in range(1, sheet.max_row + 1):
      lineList = []
      for columnNum in range(1, sheet.max_column + 1):
        value = sheet.cell(row=lineNum,
                  column=columnNum).value
        lineList.append(value)
      sheetInfo.append(lineList)
      # 将一张表的数据存到字典
      dic[sheetName] = sheetInfo
    return dic


path = r"E:\\Python\\py17\\automatictext\\001.xlsx"
dic = readXlsxFile(path)
print(dic)
 
# 有序字典
from collections import OrderedDict
# 读取数据
from pyexcel_xls import get_data


def readXlsAndXlsxFile(path):
  dic = OrderedDict()
  # 抓取数据
  xdata = get_data(path)
  for sheet in xdata:
    dic[sheet] = xdata[sheet]
  return dic


path = r"E:\\Python\\py17\\automatictext\\001.xlsx"
dic = readXlsAndXlsxFile(path)
print(dic)
print(len(dic))

4、PPT

(1)写PPT

import win32com
import win32com.client


def makeppt(path):
  ppt = win32com.client.Dispatch("PowerPoint.Application")
  ppt.Visible = True
  pptFile = ppt.Presentations.Add()

  # 创建页
  page1 = pptFile.Slides.Add(1, 1)
  t1 = page1.Shapes[0].TextFrame.TextRange
  t1.Text = "sunck"
  t2 = page1.Shapes[1].TextFrame.TextRange
  t2.Text = "sunck is a good man"
  # 保存
  pptFile.SaveAs(path)
  pptFile.Close()
  ppt.Quit()


path = r"E:\\Python\\py17\\automatictext\\sunk.ppt"
makeppt(path)

5、PDF

import win32com
import win32com.client


def makeppt(path):
  ppt = win32com.client.Dispatch("PowerPoint.Application")
  ppt.Visible = True
  pptFile = ppt.Presentations.Add()

  # 创建页
  page1 = pptFile.Slides.Add(1, 1)
  t1 = page1.Shapes[0].TextFrame.TextRange
  t1.Text = "sunck"
  t2 = page1.Shapes[1].TextFrame.TextRange
  t2.Text = "sunck is a good man"
  # 保存
  pptFile.SaveAs(path)
  pptFile.Close()
  ppt.Quit()


path = r"E:\\Python\\py17\\automatictext\\sunk.ppt"
makeppt(path)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的Django框架可适配的各种数据库介绍
Jul 15 Python
老生常谈Python进阶之装饰器
May 11 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
Jun 22 Python
Python import与from import使用及区别介绍
Sep 06 Python
对python判断是否回文数的实例详解
Feb 08 Python
在Pandas中处理NaN值的方法
Jun 25 Python
django如何实现视图重定向
Jul 24 Python
Django CBV类的用法详解
Jul 26 Python
python 利用toapi库自动生成api
Oct 19 Python
python 实现弹球游戏的示例代码
Nov 17 Python
pycharm无法导入lxml的解决办法
Mar 31 Python
Django cookie和session的应用场景及如何使用
Apr 29 Python
django将数组传递给前台模板的方法
Aug 06 #Python
Python实现时间序列可视化的方法
Aug 06 #Python
python 模拟银行转账功能过程详解
Aug 06 #Python
Python 3 判断2个字典相同
Aug 06 #Python
django 控制页面跳转的例子
Aug 06 #Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
Aug 06 #Python
django项目简单调取百度翻译接口的方法
Aug 06 #Python
You might like
PHP编程之设置apache虚拟目录
2016/07/08 PHP
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
微信小程序开发背景图显示功能
2018/08/08 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
python Django模板的使用方法
2016/01/14 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
Python 中迭代器与生成器实例详解
2017/03/29 Python
pandas的排序和排名的具体使用
2019/07/31 Python
python opencv调用笔记本摄像头
2019/08/28 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
python破解同事的压缩包密码
2020/10/14 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
基于Python的身份证验证识别和数据处理详解
2020/11/14 Python
Python使用Pygame绘制时钟
2020/11/29 Python
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
教学个人的自我评价分享
2014/02/16 职场文书
法人委托书的范本格式
2014/09/11 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
公司费用报销管理制度
2015/08/04 职场文书
纪律委员竞选稿
2015/11/19 职场文书
sql注入教程之类型以及提交注入
2021/08/02 MySQL
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python