基于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静态方法实例
Jan 14 Python
Python中List.count()方法的使用教程
May 20 Python
python之Socket网络编程详解
Sep 29 Python
梯度下降法介绍及利用Python实现的方法示例
Jul 12 Python
Python数据结构之栈、队列的实现代码分享
Dec 04 Python
Python装饰器原理与简单用法实例分析
Apr 29 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 Python
解决python使用list()时总是报错的问题
May 05 Python
python如何求100以内的素数
May 27 Python
Pyinstaller打包Scrapy项目的实现步骤
Sep 22 Python
Python 打印自己设计的字体的实例讲解
Jan 04 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将任何格式视频转为flv的代码
2009/09/03 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
JS合并数组的几种方法及优劣比较
2014/09/19 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
使用store来优化React组件的方法
2017/10/23 Javascript
详解各版本React路由的跳转的方法
2018/05/10 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
Python Tkinter简单布局实例教程
2014/09/03 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
使用sklearn之LabelEncoder将Label标准化的方法
2018/07/11 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
Django框架表单操作实例分析
2019/11/04 Python
html5时钟实现代码
2010/10/22 HTML / CSS
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
应届护士推荐信
2013/11/16 职场文书
高二地理教学反思
2014/01/24 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
经贸专业毕业生求职信范文
2014/05/01 职场文书
2014年客户经理工作总结
2014/11/20 职场文书
毕业欢送会致辞
2015/07/29 职场文书
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python