基于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 相关文章推荐
pycharm 使用心得(五)断点调试
Jun 06 Python
Python正则表达式的使用范例详解
Aug 08 Python
Python中bisect的用法
Sep 23 Python
深入讨论Python函数的参数的默认值所引发的问题的原因
Mar 30 Python
简单的Python的curses库使用教程
Apr 11 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
Numpy之random函数使用学习
Jan 29 Python
python3.6生成器yield用法实例分析
Aug 23 Python
Python:slice与indices的用法
Nov 25 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
解决echarts中饼图标签重叠的问题
May 16 Python
keras 自定义loss层+接受输入实例
Jun 28 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实现用户论证的方法
2006/10/09 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
PHP Reflection API详解
2015/05/12 PHP
使用php-timeit估计php函数的执行时间
2015/09/06 PHP
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
jQuery 使用手册(一)
2009/09/23 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
js中遍历Map对象的简单实例
2016/08/08 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
vue项目中使用Svg的方法
2018/10/24 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
详细介绍Python语言中的按位运算符
2013/11/26 Python
Python写的服务监控程序实例
2015/01/31 Python
全面分析Python的优点和缺点
2018/02/07 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
Python中os模块功能与用法详解
2020/02/26 Python
python如何判断IP地址合法性
2020/04/05 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
高考自主招生自荐信
2013/10/20 职场文书
国际贸易专业推荐信
2013/11/15 职场文书
大学本科毕业生的自我鉴定范文
2013/11/19 职场文书
销售副总经理岗位职责
2013/12/11 职场文书
《争吵》教学反思
2014/02/15 职场文书
假期安全教育广播稿
2014/10/04 职场文书
公务员政审个人总结
2015/02/12 职场文书
结婚典礼主持词
2015/06/29 职场文书
记者节感言
2015/08/03 职场文书
转变工作作风心得体会
2016/01/23 职场文书
靠谱的活动总结
2019/04/16 职场文书
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技