python word处理_python处理word和excel文件

python处理word和excel表格数据

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

python对编辑word表格

需要安装第三方库python-docx

对表格的基本操作

# -*- 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模块读取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读取和写入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的基本操作,能够完成目前所需。另外设置单元格格式,设置数据格式等更多的操作还有待学习。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值