基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
作者:Yohance.✔ 发布时间:2022-09-21 05:14:57
标签:python,自动化办公
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)
来源:https://blog.csdn.net/weixin_37411471/article/details/88372932


猜你喜欢
- 题:取表table中100条-200条之间数据 方法1:临时表 select top 200 * into #aa from table o
- 本文实例讲述了Django框架反向解析操作。分享给大家供大家参考,具体如下:1. 定义:随着功能的增加会出现更多的视图,可能之前配置的正则表
- 如果你有两条音频合成为一条音频(叠加,不是拼接)的需求,以下代码可以直接使用,需要修改的地方我已经标出来了,有三处需要修改你的本地音频的地址
- 对于np.argmax()让我迷惑了很久,尤其是其中的axis=1的比较结果。一、np.argmax()的理解1、最简单的例子假定现在有一个
- 一、项目效果学校宿舍今天搬家,累麻了,突然发现展示处理的也很粗糙,就这样吧嘿嘿~~~二、核心流程1、openCV读取视频流、在每一帧图片上画
- 保存代码到文件:logger.pyimport osimport logbookfrom logbook.more import Color
- 导语哈喽!我是木木子,又到了今日更新时刻!我们来看看写什么呢?小编有个好兄弟最近在追妹子,跟妹子打得火热!就差临门一脚了,这一jio我帮忙补
- 本文实例为大家分享了js轮播图实现代码,供大家参考,具体内容如下思路:1、首先要有个盛放图片的容器,设置为单幅图片的宽高,且overflow
- 查了查《VBSCRIPT 速查手册》InstrRev的用法:InstrRev函数,功能:返回某字符串在另一个字符串中出现的从结尾计起的位置语
- 最近vue更新的2.0版本,唉,我是在2.0版本前学习的,现在更新了又要看一遍了,关键是我之前看了3个星期2.0就更新了,vux还没同步更新
- 在前面我们介绍了多种请求库,如 Requests、Urllib、Selenium 等。我们接下来首先贴近实战,了解一下代理怎么使用,为后面了
- 下面就来介绍下SQL Server 2008中使用的端口有哪些:首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果我们要远程
- 每位SQL Server开发员都有自己的首选操作方法。我的方法叫做分子查询。这些是由原子查询组合起来的查询,通过它们我可以处理一个表格。将原
- 一、单循环动态设置ref1.设置:【:ref=“‘XXX’ + index&am
- pyinstaller打包配置文件无法正常读取import osfile = os.path.dirname(os.path.abspath
- 介绍UliPad是一个国人开发的python轻量级编辑器,导向和灵活的编程器。它如类浏览器,代码自动完成许多功能,如:HTML查看器,目录浏
- 为什么要引入线程池如果在程序中经常要用到线程,频繁的创建和销毁线程会浪费很多硬件资源,所以需要把线程和任务分离。线程可以反复利用,省去了重复
- 首先给大家分享一个个人在使用python的ctypes调用c库的时候遇到的一个小坑这次出问题的地方是一个C函数,返回值是malloc生成的字
- 看知乎的时候发现了一个 “如何正确地吐槽” 收藏夹,里面的一些神回复实在很搞笑,但是一页一页地看又有点麻烦,而且每次都要打开网页,于是想如果
- blankzheng的blog:http://www.planabc.net/1、使用fieldset和legend标签在form中,我们经