Python第九章(Excel与Word文件操作)

使用扩展库openpyxl:读写Excel操作

第一步导入扩展库,引用库里的包:

import openpyxl
from openpyxl import  Workbook

 第二步创建excel文件:

fn='extest.xlsx'
wb=Workbook()#创建工作簿
ws=wb.create_sheet(title='工作表1')#创建工作表,并命名
ws['a1']='1223'#给单元格a1赋值
ws['b1']=3.14  #给单元格b1赋值
wb.save(fn)#保存excel文件

第三步使用已有excel文件:

注:使用文件时,要关闭文件,才能正常使用

打开文件,并创建wb对象,为了使用工作表

wb=openpyxl.load_workbook('extest.xlsx')

 打开指定索引工作表,并创建对象,使用单元格

ws=wb.worksheets[1]

注:这里的1用的是第几个工作表,从0开始 

读取单元格

# 读取工作表中的单元格
print(ws['a1'].value)
# 添加一行数据
ws.append([1,2,3,4])
# 合并单元格
ws.merge_cells('f2:f3')
# 写入公式
ws['f2']="=sum(a2:e2)"
# 写入单元格数据
ws.cell(10,3,5)
wb.save('extest.xlsx')

注:.value是不给提示的,需要手动输入 ; ws.cell(行,列,值) ,使用完一定要保存

 

使用扩展库python-docx:读写Word操作

第一步导入python-docx扩展库:

import docx
import re
from docx import  Document

第二步创建文档对象并保存:(word.docx文档创建成功)

doc=docx.Document('word.docx')
doc.save('word.docx')

第三步使用已有文档读与写:

word中写操作:(这里只介绍几个常用的,其他的我也不会。想知道,找度娘吧!她什么都知道哟!)

import docx
import re
from docx import Document
#增加一个人在段落
doc.add_paragraph('time')
doc.add_paragraph('汉字')
# 增加一个6行6列的表格,并设置表格样式
table=doc.add_table(rows=6,cols=6,style='Table Grid')
# 该表格中第2行第3列写入内容,下标从0开始
table.cell(1,2).text="第{i}行{j}列"
# 插入图片
doc.add_picture('1.png',width=docx.shared.Inches(5))
# 插入列表(style='List Number'表示有序列表 ,'List Bullet'无序列表)
doc.add_paragraph('还有什么',style='List Number')
doc.add_paragraph('还有什么呀',style='List Number')
doc.save('word.docx')

word中读操作:

1. 读取文本:

import docx
import re
import os
from docx import Document
doc=docx.Document('word.docx')
for p in doc.paragraphs:
    t=p.text# 获取每一段文本
    # 打印段落
    print(t)

2. 读取文本有标志性的字体:(带有颜色的字体,加粗的字体等)

boldText=[]#存加粗的字体
redText=[] #存红色的字体
for p in doc.paragraphs:
    for r in p.runs:
        # 加粗的字体
        if r.bold:
            boldText.append(r.text)
        if r.font.color.rgb==RGBColor(255,0,0):
            redText.append(r.text)
# 打印加粗字体
print(boldText)
# 打印红色字体
print(redText)

注:word文件的结构分为三层:1. Document对象表示整个文档;2. Document包含了 Paragraph对象的列表,每个Paragraph对象用来表示文档中的一个段落;3. Paragraph 对象包含了Run对象的列表,一个Run对象就是style相同的一段文本,遍历word文档的所有段落的所有run对象,根据run对象的属性进行识别和输出

3. 读取表格:

for table in doc.tables:  # 遍历所有表格
    for row in table.rows:  # 遍历表格的所有行
        for cell in row.cells:
            print(cell.text, "\t")

注:好像word在python中不能直接读取word中的图片,为什么我也不知道,实力不允许呀

发布了59 篇原创文章 · 获赞 3 · 访问量 4760

猜你喜欢

转载自blog.csdn.net/CDZAllier/article/details/102536124
今日推荐