基于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中设置变量访问权限的方法
Apr 27 Python
机器学习python实战之手写数字识别
Nov 01 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
Apr 26 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
Jul 03 Python
python如何统计代码运行的时长
Jul 24 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
Mar 12 Python
Django模板标签中url使用详解(url跳转到指定页面)
Mar 19 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
python 装饰器的实际作用有哪些
Sep 07 Python
Python selenium模拟网页点击爬虫交管12123违章数据
May 26 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扩展ZF――Validate扩展
2008/01/10 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
React简单介绍
2017/05/24 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
vue自定义指令实现方法详解
2019/02/11 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
javascript History对象原理解析
2020/02/17 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
python 文件转成16进制数组的实例
2018/07/09 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
django 微信网页授权登陆的实现
2019/07/30 Python
python批量图片处理简单示例
2019/08/06 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
几个Shell Script面试题
2014/04/18 面试题
《维生素c的故事》教学反思
2014/02/18 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
python 安全地删除列表元素的方法
2022/03/16 Python
Mysql事务索引知识汇总
2022/03/17 MySQL
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python