python自动处理excel,python+excel办公自动化教程
Excel是Windows环境下一个流行且功能强大的电子表格应用程序。本文将详细讲解如何使用Python和xlrd、xlwt实现Excel的自动操作。有需要可以参考一下。
00-1010 1.Python操作excel 7大数据库对比2。xlrd读取Excel操作1。打开文件2。获取所有表名3。指定表4中的工作表。操作表5的各行。操作表3中的列。将xlwt写入Excel表1。写单个数据2。写入多个数据3。设置列宽为4。设置行高为5。设置单元格样式。
目录
Excel是Windows环境下一个流行且功能强大的电子表格应用程序。无论是在工作还是学习中,我们几乎不间断地使用Excel来记录或处理一些数据。例如,可能有一个无聊的任务需要从一个电子表格中复制一些数据并粘贴到另一个电子表格中。或者可能需要从几千行中选出几行,根据一定条件稍加修改。或者需要查看上百个部门预算电子表格才能找到指定的内容。就是这种无聊的不用动脑的电子表格任务。如果是人工完成,无论从时间成本还是精力成本来说,都不会是一件好事,但是Python可以做到。
7大库的功能对比图如下(本文主要介绍xlrd和xlwt):
一、Python操作Excel 7大库对比
xlrd模块是用来读取Excel数据的,非常快。支持读取。xls和。xlsx文件格式。
1. cmd控制台安装模块:
pip安装xlrd
2. 导入模块:
导入xlrd
测试表如下:
二、xlrd 读取excel操作
xlrd.open_workbook(路径)
wb=xlrd.open_workbook(。/a.xls )
打印(世界银行)
运行结果:
位于0x000001F905A33DC0的xlrd.book.Book对象
1. 打开文件
wb.sheet_names()
工作表名称列表=wb .工作表名称()
打印(工作表名称列表)
运行结果:
[工作表1 ,工作表2 ,工作表3]
2. 获取所有表名
Wb.sheet_by_index (index)或wb.sheet_by_name(工作表名称)
#模式1:指数订单获取
sheet _ 1=wb.sheet _ by _索引(0)
#方法23360名称获取
sheet _ 2=WB . sheet _ by _ name( sheet 1 )
3. 指定sheet表
1.获取工作表的总函数:sheet.nrows
2.返回该行中所有单元格对象的列表,其中有键值对:sheet.row(1),如[列名13360 value ,列名23360。
39;值', ...]或者sheet.row_slice(1)
3. 返回指定行的所有单元格数值组成的列表:sheet.row_values(rowx, start_colx=0, end_colx=None)
,如:['值1','值2',...]
4. 返回指定行的有效长度:sheet.row_len(rowx)
# 1.获取sheet表总函数:sheet.nrowsprint("总行数为:", sheet_1.nrows)
# 2.返回由该行中所有的单元格对象组成的列表,列表内是键值对: sheet.row(1)
print(sheet_1.row(1))
# 或者sheet.row_slice(1)
print(sheet_1.row_slice(1))
# 3.返回指定行的所有单元格数值组成的列表: sheet.row_values(rowx, start_colx=0, end_colx=None)
print(sheet_1.row_values(1))
# 4.返回指定行的有效长度:sheet.row_len(rowx)
print("返回指定行的有效长度:", sheet_1.row_len(1))
print(- * 20)
# 5. 读取整个表
for i in range(sheet_1.nrows):
print(sheet_1.row_values(i))
运行结果:
总行数为: 4
[text:'物品1', empty:'', number:100.0, text:'EUR 0.1', text:'EUR 0.1']
[text:'物品1', empty:'', number:100.0, text:'EUR 0.1', text:'EUR 0.1']
['物品1', '', 100.0, 'EUR 0.1', 'EUR 0.1']
返回指定行的有效长度: 5
--------------------
['item', 'b', 'PCS', 'UNIT', 'TOTAL']
['物品1', '', 100.0, 'EUR 0.1', 'EUR 0.1']
['物品2', '', 100.0, 'EUR 0.1', 'EUR 0.1']
['物品3', '', 200.0, 'EUR 0.2', 'EUR 0.2']
5. 对sheet表的列操作
1. 返回指定sheet表的有效列数:sheet.ncols
2. 返回由该列中所有的单元格对象组成的列表,列表内是键值对:sheet.col(1)
,如:[列名1:'值',列名2:'值', ...]
或者sheet.col_slice(1)
3. 返回指定列的所有单元格数值组成的列表:sheet.col_values(colx, start_colx=0, end_colx=None)
,如:['列名','值1','值2',...]
# 1. 返回指定sheet表的有效列数:sheet.ncolsprint("总列数为:", sheet_1.ncols)
# 2. 返回由该列中所有的单元格对象组成的列表,列表内是键值对:sheet.col(1)
print(sheet_1.col(1))
# 或者sheet.col_slice(1)
print(sheet_1.col_slice(1))
# 3. 返回指定列的所有单元格数值组成的列表:sheet.col_values(colx, start_colx=0, end_colx=None)
print(sheet_1.col_values(0)) # 带列名
print(sheet_1.col_values(0, 1)) # 不带列名
print(- * 20)
# 4. 读取全部表
for i in range(sheet_1.ncols):
print(sheet_1.col_values(i))
运行结果:
总列数为: 5
[text:'b', empty:'', empty:'', empty:'']
[text:'b', empty:'', empty:'', empty:'']
['item', '物品1', '物品2', '物品3']
['物品1', '物品2', '物品3']
--------------------
['item', '物品1', '物品2', '物品3']
['b', '', '', '']
['PCS', 100.0, 100.0, 200.0]
['UNIT', 'EUR 0.1', 'EUR 0.1', 'EUR 0.2']
['TOTAL', 'EUR 0.1', 'EUR 0.1', 'EUR 0.2']
三、xlwt 写入Excel表操作
xlwt 模块可以将数据写入到 Excel 工作簿中。目前已支持写入.xls
和 .xlsx
两种文件格式
1. cmd控制台安装模块:
pip install xlwt
2. 导入模块:
import xlwt
1. 写入单个数据
1. 创建Excel表对象:xlwt.Workbook(encoding='utf8')
2. 新建sheet表:worksheet = workbook.add_sheet('Sheet1')
3. 写入数据到指定单元格:worksheet.write(0, 0, "python")
。第一个参数是第 i 行,第二个是第 j 列,第三个是要写的参数(字符串或数字)
4. 保存文件:workbook.save('test.xlsx')
。目前已支持写入.xls
和.xlsx
两种文件格式
测试代码:
import xlwt# 1. 创建Excel表对象
workbook = xlwt.Workbook(encoding=utf8)
# 2. 新建sheet表
worksheet = workbook.add_sheet(Sheet1)
# 3. 写入数据到指定单元格
worksheet.write(0, 0, "python")
# 4. 保存文件分两种格式
workbook.save(test.xls)
workbook.save(test.xlsx)
运行结果如下:生成两个新文件
2. 写入多个数据
测试代码:
import xlwtdata_list = [(小白, 20, 男), (小黑, 21, 男), (小红, 20, 女)]
# 1. 创建Excel表对象
workbook = xlwt.Workbook(encoding=utf8)
# 2. 新建sheet表
worksheet = workbook.add_sheet(Sheet1)
# 3. 自定义列名
col1 = (姓名, 年龄, 性别)
# 4. 将列属性元组col写进sheet表单中第一行
for i in range(0, len(col1)):
worksheet.write(0, i, col1[i])
# 5. 将数据写进sheet表单中
for i in range(0, len(data_list)):
data = data_list[i]
for j in range(0, len(col1)):
worksheet.write(i + 1, j, data[j])
# 6. 保存文件分两种格式
workbook.save(test.xls)
运行结果:
3. 设置列宽
cols_num是列的数目,可以通过修改12这个值,修改列的宽度
for c in range(len(col1)):worksheet.col(c).width = 256 * 24
运行结果:
4. 设置行高
设置行高,修改1600为别的值,可以修改行的高度
测试代码:
# 5. 将数据写进sheet表单中for i in range(0, len(data_list)):
data = data_list[i]
for j in range(0, len(col1)):
worksheet.write(i + 1, j, data[j])
# 6. 设置行高
worksheet.row(i + 1).height_mismatch = True
worksheet.row(i + 1).height = 1600 # 设置行高
运行结果:
5. 设置单元格风格
常用设置单元格的属性:
测试代码:
def body_style():# 一、创建一个样式对象,初始化样式 style
style = xlwt.XFStyle() # Create Style对象
# 二、字体风格设置
font = xlwt.Font() # Create Font对象
font.name = "SimSun" # 设置字体类型,宋体
font.colour_index = 4 # 设置字体颜色
font.height = 20 * 12 # 字体大小,12为字号,20为衡量单位
font.bont = True # 设置字体加粗
font.underline = True # 下划线
font.italic = True # 斜体字
# 二、背景设置
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
pattern.pattern_fore_colour = 4 # 给背景颜色赋值
# 三、边框设置
borders = xlwt.Borders() # 创建边框对象, # .DASHED:虚线;.NO_LINE:没有
# 上下左右都添加边框
borders.left = 1
borders.right = 1
borders.top = 1
borders.bottom = 1
# 设置边框颜色
borders.left_colour = 2
borders.right_colour = 2
borders.top_colour = 2
borders.bottom_colour = 2
# 四、位置设置
alignment = xlwt.Alignment()
alignment.horz = 1 # 设置水平位置,0是左对齐,1是居中,2是右对齐
alignment.wrap = 1 # 设置自动换行
# 五、设置好之后,全部都加到style上
style.alignment = alignment
style.font = font
style.borders = borders
return style
应用样式:
sheet.write(row, column, i) # 不带格式sheet.write(row, column, i, style) # 有格式
运行结果:
到此这篇关于Python自动化操作Excel方法详解(xlrd,xlwt)的文章就介绍到这了,更多相关Python自动化操作Excel内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。