基于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 相关文章推荐
修复 Django migration 时遇到的问题解决
Jun 14 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
python批量将excel内容进行翻译写入功能
Oct 10 Python
TensorBoard 计算图的查看方式
Feb 15 Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 Python
Python响应对象text属性乱码解决方案
Mar 31 Python
Python使用os.listdir和os.walk获取文件路径
May 21 Python
Python Dict找出value大于某值或key大于某值的所有项方式
Jun 05 Python
python利用xlsxwriter模块 操作 Excel
Oct 14 Python
python实现马丁策略回测3000只股票的实例代码
Jan 22 Python
Python3中对json格式数据的分析处理
Jan 28 Python
python数据库批量插入数据的实现(executemany的使用)
Apr 30 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防止站外远程提交表单的方法
2014/10/20 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
基于jquery自定义图片热区效果
2012/07/21 Javascript
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
2019/01/21 Javascript
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
Python获取邮件地址的方法
2015/07/10 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
python实现一组典型数据格式转换
2018/12/15 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
Python函数参数分类原理详解
2020/05/28 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
linux面试题参考答案(6)
2014/08/29 面试题
易程科技软件测试笔试
2013/03/24 面试题
教育学习自我评价
2014/02/03 职场文书
节约用电标语
2014/06/17 职场文书
交通事故协议书范文
2014/10/23 职场文书
护士2015年终工作总结
2015/04/29 职场文书
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers