基于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批量提交沙箱问题实例
Oct 08 Python
python使用smtplib模块通过gmail实现邮件发送的方法
May 08 Python
Python中如何获取类属性的列表
Dec 26 Python
Python随机读取文件实现实例
May 25 Python
利用 python 对目录下的文件进行过滤删除
Dec 27 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
Apr 26 Python
python实现数据导出到excel的示例--普通格式
May 03 Python
python:动态路由的Flask程序代码
Nov 22 Python
python中p-value的实现方式
Dec 16 Python
Python函数的定义方式与函数参数问题实例分析
Dec 26 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
python如何在word中存储本地图片
Apr 07 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
php下连接mssql2005的代码
2011/01/17 PHP
php连接mssql数据库的几种方法
2013/02/21 PHP
php之static静态属性与静态方法实例分析
2015/07/30 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
如何在PHP中读写文件
2020/09/07 PHP
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
2013/04/26 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
玩转方法:call和apply
2014/05/08 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
JQuery球队选择实例
2015/05/18 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
利用Python实现网络测试的脚本分享
2017/05/26 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
基于python获取本地时间并转换时间戳和日期格式
2020/10/27 Python
测量实习生自我鉴定
2013/09/19 职场文书
体育课课后反思
2014/04/24 职场文书
个人先进事迹材料范文
2014/12/29 职场文书
党风廉正建设责任书
2015/01/29 职场文书
三峡人家导游词
2015/01/31 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
Golang 编译成DLL文件的操作
2021/05/06 Golang
如何理解PHP核心特性命名空间
2021/05/28 PHP
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
在python中读取和写入CSV文件详情
2022/06/28 Python