python办公文档处理(excel,pdf,word,图片)

创建execl文件

#导入库
from openpyxl import Workbook
from openpyxl.worksheet.table import Table, TableStyleInfo
#创建表单
workbook = Workbook()
sheet = workbook.active
#数据
data = []
#设置表格台头
sheet.append(['学号', '姓名', '性别', '电话'])
#将数据按行输入表格
for row in data:
    sheet.append(row)
#设置表名和表的位置
tab = Table(displayName="Table1", ref="A1:E5")
#设置表格形式openpyxl.worksheet.table.tableStyleInfo
tab.tableStyleInfo = TableStyleInfo(
    name="TableStyleMedium9", showFirstColumn=False,
    showLastColumn=False, showRowStripes=True, showColumnStripes=True)
sheet.add_table(tab)#将表格放入表单
workbook.save('./…/.xlsx')#保存路径

读取excel文件

from openpyxl import load_workbook
from openpyxl import Workbook
#读取excel文件
workbook = load_workbook('./.xlsx')
#打印表单中所有表格的名称,返回值为列表形式
print(workbook.sheetnames)
#读取第一个表格
sheet = workbook[workbook.sheetnames[0]]
#打印表格名称
print(sheet.title)
for row in range(2, 7):
    for col in range(65, 70):
        cell_index = chr(col) + str(row)#chr返回当前整数对应的 ASCII 字符,str返回一个对象的string格式,即A2:E6
        print(sheet[cell_index].value, end='\t')#打印表格A2:E6内容
    print()

读取pdf文件

from PyPDF2 import PdfFileReader
#打开文件
with open('./.pdf', 'rb') as f:
	#读取pdf
    reader = PdfFileReader(f, strict=False)
    #打印页数
    print(reader.numPages)
    #isEncrypted只读布尔属性,显示此PDF文件是否已加密。
    if reader.isEncrypted:
        reader.decrypt('')#尝试解密,密码为空,正确返回1,错误返回0
    current_page = reader.getPage(5)#获取第6页,第一页是0
    print(current_page)#打印第6页内容
    print(current_page.extractText())#返回该页文本的字符串

读取word文件

from docx import Document
#读取word文件
doc = Document('./.docx')
#读取页数
print(len(doc.paragraphs))
#打印第一段内容,runs为相同样式文本,如果文本样式改变,就是下一个run
print(doc.paragraphs[0].runs.[0].text)

content = []
for para in doc.paragraphs:
    content.append(para.text)
print(''.join(content))#打印所有段落文本

读取图像并进行操作

from PIL import Image
#读取图像
img = Image.open('./.jpg')
print(img.size)#图像大小
print(img.format)#图像格式
print(img.format_description)#格式介绍
img.save('./.png')#保存为png格式

img2 = Image.open('./.png')
img3 = img2.crop((335, 435, 430, 615))#裁剪图像(x, y, x+w, y+h)
for x in range(4):
    for y in range(5):
        img2.paste(img3, (95 * y , 180 * x))#paste函数的作用为将一张图片覆盖到另一张图片的指定位置去,将img3粘贴到img2的(95 * y , 180 * x)位置上
img2.resize((img.size[0] // 2, img.size[1] // 2))#图像长宽各缩小一半
img2.rotate(90)#旋转90度
img2.save('./.png')#保存

你可能感兴趣的:(python,excel)