<span>python处理word和excel文件</span>

python处理word和excel表格数据

学习过程中遇到批量将excel表格数据填入到word的问题,对于excel的函数使用不是很熟悉,python中有处理word和excel的库,所以学习使用python实现对数据的批量处理。首先是需要了解处理word和excel的具体操作。

python对编辑word表格

需要安装第三方库python-docx

python-docx API网址:https://python-docx.readthedocs.io/en/latest/#api-documentation

对表格的基本操作

# -*- coding: utf-8 -*-
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
from docx.shared import Pt

path=r'C:\Users\hxy\Desktop\test.docx'#文件路径
doc=Document(path)#读入文件
#设置表格字体
doc.styles['Normal'].font.name = u'仿宋'
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋')

#获取所有的表格,返回列表
tables=doc.tables
print(tables)

#读取第一个表格的内容,获取全部的表格内容加个循环即可
table_1=tables[0]#第一个表
tb_rows=table_1.rows#获取表格的行
#读取每一行内容s
for i in range(len(tb_rows)):
    row_data=[]
    row_cells=tb_rows[i].cells
    #读取每一行单元格内容
    for cell in row_cells:
        #单元格内容
        row_data.append(cell.text)
    print(row_data)
#数据填入表格,两种方式
table_1.cell(0,1).text="测试使用"#单元格直接赋值
table_1.cell(0,3).paragraphs[0].add_run(u'whoami')#追加写入数据
#单元格的属性修改
run=table_1.cell(0,5).paragraphs[0].add_run("计算机")
run.bold=True#字体加粗
run.font.size = Pt(9)  # 字体大小:小五-9
table_1.cell(0,5).paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER  # 居中

doc.save(path)#文件保存

python对excel表格的读写操作

python实现对excel表格的操作有xlrd(只能读入,不能写)、xlwd,openpyxl模块能够实现对excel的读写操作。

xlrd和xlwt都是针对Excel97-2003操作的,也就是以xls结尾的文件。很显然现在基本上都是Excel2007以上的版本,以xlsx为后缀。要对这种类型的Excel文件进行操作要使用openpyxl,该模块既可以进行“读”操作,也可以进行“写”操作,还可以对已经存在的文件做修改。

xlrd网址:https://pypi.org/project/xlrd/

xlrd模块读取excel表格

# -*- coding: utf-8 -*-

import xlrd
excelDir=r'C:\Users\hxy\Desktop\test.xlsx'
# 打开表格
workbook=xlrd.open_workbook(excelDir)
# 获取表名
worksheet_name=workbook.sheet_names()
print(worksheet_name)
# 根据序号打开表
worksheet=workbook.sheet_by_index(0)
# 获取表的名称,行,列
print(worksheet.name,worksheet.nrows,worksheet.ncols)
# 获取第一行
rows=worksheet.row_values(0)
print(rows)
# 获取单元格的值
data_1=worksheet.cell_value(1,7)
data_2=worksheet.cell(1,0).value
data_3=worksheet.row(1)[2].value
print(data_1,data_2,data_3)
# print(worksheet.cell(1,2))

#读取指定工作表的表格内容
for i in range(worksheet.nrows):
    row=worksheet.row_values(i)
    print(row)

openpyxl网址:https://bitbucket.org/openpyxl/openpyxl/src/default/

使用openpyxl读取和写入excel

import openpyxl

excelDir=r'C:\Users\hxy\Desktop\test.xlsx'
#打开工作簿对象
workbook=openpyxl.load_workbook(excelDir)
#获取工作簿中的所有表
sheetnames=workbook.sheetnames
print(sheetnames)

#获取工作表对象
# sheetname=workbook[sheetnames[0]]
sheetname=workbook.worksheets[0]
print(sheetname)

#获取表的属性
name=sheetname.title
print(name)
rows,cols=sheetname.max_row,sheetname.max_column
print(rows,cols)

#按行或列方式获取表中的数据
for row in sheetname.rows:
    for cell in row:
        print(cell.value,end=" ")
    print()
print("=="*30)
for col in sheetname.columns:
    for cell in col:
        print(cell.value,end=" ")
    print()
#获取指定单元个的数据
data1=sheetname.cell_value(0,0)
data2=sheetname.cell(0,1).value
print(data1,data2)


# 插入一列
sheetname.insert_cols(1)
for index,row in enumerate(sheetname.rows):
    if index==0:
        row[0].value="编号"
    else:
        row[0].value=index

#可以插入列表数据
data=[10,"llc",'whoami','hellowordl']
sheetname.append(data)
#保存
workbook.save(filename=excelDir)
print('finish')

批量操作数据

​ 因为数据格式是相同的,只是填入的数据不同,所以可以通过docx和xlrd对表格的基本操作,可以实现对数据的批量处理。首先使用xlrd将数据读取到列表中,然后将列表的数据填入指定的表格中。

这里只是对word和excel的基本操作,能够完成目前所需。另外设置单元格格式,设置数据格式等更多的操作还有待学习。

全部评论

相关推荐

07-25 11:26
清华大学 Java
打开电脑,思绪又回到了7月份刚开始的时候,感觉这个月过的如梦如幻,发生了太多事,也算是丰富了我本就是平淡的人生吧太早独立的我习惯了一切都是自己做决定,拥有绝对的决定权,而且永远不会听取别人的建议。我就是那个恋爱四年出轨的男主啦,感觉既然在牛客开了这个头,那我就要做个有始有终的人。从我出轨到结束再到和女朋友和好如初真的太像一场梦了,短短的一个月我经历了太多,也成长了很多,放下了那些本就不属于我的,找回了那些我不该放弃的。我的人生丰富且多彩,但人不能一直顺,上天总会让你的生活中出点乱子,有好有坏,让你学会一些东西,让你有成长。我和女朋友的恋爱四年太过于平淡,日常除了会制造一些小浪漫之外,我们的生活...
段哥亡命职场:不得不说,我是理解你的,你能发出来足见你是个坦诚的人,至少敢于直面自己的内心和过往的过错。 这个世界没有想象中那样非黑即白,无论是农村还是城市,在看不见的阴影里,多的是这样的事。 更多的人选择站在制高点去谩骂,一方面是社会的道德是需要制高点的,另一方面,很多人不经他人苦,却劝他人善。 大部分的我们,连自己生命的意义尚且不能明晰,道德、法律、困境,众多因果交织,人会迷失在其中,只有真的走出来之后才能看明白,可是没走出来的时候呢?谁又能保证自己能走的好,走的对呢? 可是这种问题有些人是遇不到的,不去追寻,不去探寻,也就没了这些烦恼,我总说人生的意义在过程里,没了目标也就没了过程。 限于篇幅,没法完全言明,总之,这世界是个巨大的草台班子,没什么过不去了,勇敢面对,革故鼎新才是正确,祝你早日走出来。查看图片
点赞 评论 收藏
分享
06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-25 17:13
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务