首页 > 编程知识 正文

python调用Excel(python处理excel的优势)

时间:2023-05-04 18:42:23 阅读:87534 作者:1389

python操作excel主要使用三个库: xlrd、xlwt和xlutils。 也就是说,xlrd是读excel,xlwt是写excel的库,xlutils可以实现修改。

一、Xlrd读取Excel

Xlrd可以读取指定的表单、指定的单元格。

1、在Python上安装xlrd

pip安装xlrd

2、导入模块

导入xlrd

3、测试代码

# #-* -编码: utf-8-* -

导入xlrd

# #一、打开文件

xl=xlrd.open_workbook ('测试读数excel.xls ' )

# #二、获取sheet

获取打印(' sheet名称: ',xl.sheet_names ) ) sheet的名称

print (对象:xl.sheets ) )获取sheet对象

print (总数: )、xl.nsheets ) #获取的sheet总数

从print ()名称获取)、xl.sheet_by_name(u )帐户表) )

从print ()索引获取)、xl.sheet_by_index(1) ) )

# #三、获取sheet内的统计数据

表1=XL.sheet _ by _ name (u '地域表) ) ) ) )。

打印(' sheet名称:',表1.name )。

打印('总列数:',表1.ncols ) )。

print (总行数)、table1.nrows ) )。

# #四、单元批量读取

获取print ('第1行的内容:',table1.row_values(0) )第n行的值。 如果合并单元格的第一行显示值,则其他值为空

获取打印('第1行的内容和类型)、table1.row(0) #值和类型

打印('第1行的各列类型)、表1 .行类型(0) )类型0 empty、1字符串、2号、3天、4个布尔值、5个错误

print ('内容:',table1. col _ values (0,1,4 ) )返回此列中所有单元格的数据列表

print ('内容:',table1. row _ slice (1,0,2 ) )返回由此列中的所有单元格对象组成的列表

print ('这一行有几列。' ,table1.row_len(0) #返回此列中有效单元格的长度

# #五、特定单元读取

取# # #值

返回到打印(第4行第2列的内容)、table1.cell ) 3、1 )、值) #单元格对象

返回打印(第7行第2列的内容)、表1.cell _ value )单元格的数据

print(9 (第9行的第2个值)、table1.row(8)8) [1].value ) #返回由该行的所有单元格对象组成的列表

打印列中的第六个值:',table1.col(1) [5].value ) #返回该列中所有单元格对象的列表

打字

print ()表示第5行第2列的类型)、table1.cell )、1 ).ctype )

print ('表示第12行第2列的类型。' ,table1.cell_type ) (11,1 ) ) #返回单元格中的数据类型

print ('表示第4行第2列的类型。' 表1 .行(3) )3) [1] .类型)。

(六、将一般技巧(0,0 )转换为A1

print ()为单元格名称)、xlrd.cellname、0 ) )并将其转换为A1

print ()显示单元格名称),xlrd.cellnameabs (0,0 ) ),然后将其转换为$A$1

print )显示单元格的列名。xlrd.colname(0) ) #将列从数字转换为字母

二、xlwt写Excel

xlwt实现对指定表单、指定单元格的写入。

注:从excel03版到excel2013版均受支持。 保存的格式当前只支持xls格式,07和更高版本的xlsx不支持。

1、安装

pip安装xlwt

2、导入模块

导入xlwt

3、测试代码

# #-* -编码: utf-8-* -

导入xlwt

导入日期时间

# #创建新的excel文件

创建工作区配置代码

workbook=xlwt.workbook (编码=' utf-8 ' )

创建工作表

工作区=工作区. add _ sheet (“测试”)

写入excel

# #参数对应行、列、值

worksheet.write (1,0,label='正在测试') ) ) ) ) ) )。

# #保存

workbook.save (测试写入excel_1.xls ) )

# #样式设定

workbook=xlwt.workbook (编码=' utf-8 ' )

worksheet = workbook.add_sheet('测试') style = xlwt.XFStyle() # 初始化样式 font = xlwt.Font() # 为样式创建字体 font.name = 'Times New Roman' font.bold = True # 黑体 font.underline = True # 下划线 font.italic = True # 斜体字 style.font = font # 设定样式 worksheet.write(0, 0, '不带样式') # 不带样式的写入 worksheet.write(1, 0, '设置了样式', style) # 带样式的写入 workbook.save('测试写excel_2.xls') # 保存文件 # 设置单元格宽度 workbook = xlwt.Workbook(encoding = 'utf-8') worksheet = workbook.add_sheet('单元格宽度测试') worksheet.write(0, 0,'单元格宽度测试') worksheet.col(0).width = 3333 workbook.save('测试写excel_3.xls') #输入一个日期到单元格 workbook = xlwt.Workbook() worksheet = workbook.add_sheet('测试日期') style = xlwt.XFStyle() style.num_format_str = 'M/D/YY' # 日期格式: D-MMM-YY, D-MMM, MMM-YY, h:mm, h:mm:ss, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, [h]:mm:ss, mm:ss.0 worksheet.write(0, 0, datetime.datetime.now(), style) workbook.save('测试写excel_3.xls') #添加一个公式 workbook = xlwt.Workbook() worksheet = workbook.add_sheet('测试表') worksheet.write(0, 0, 10) # 第一行第一列(A1)写入数字 10 worksheet.write(0, 1, 13) # 第一行第二列(A2)写入数字 13 worksheet.write(1, 0, xlwt.Formula('A1*B1')) # 使用公式计算A1*A2 worksheet.write(1, 1, xlwt.Formula('SUM(A1,B1)')) # 使用公式计算A1+A2 workbook.save('测试写excel_4.xls') # 添加一个超链接 workbook = xlwt.Workbook() worksheet = workbook.add_sheet('测试表') worksheet.write(0, 0, xlwt.Formula('HYPERLINK("http://www.1668s.com";"优惠券")')) #添加超链接 workbook.save('测试写excel_5.xls') # 合并列和行 workbook = xlwt.Workbook() worksheet = workbook.add_sheet('测试表') worksheet.write_merge(0, 0, 0, 8, '第一个合并单元格')#合并第1行第1列到第9列的单元格 font = xlwt.Font() # Create Font font.bold = True # Set font to Bold style = xlwt.XFStyle() # Create Style style.font = font # Add Bold Font to Style worksheet.write_merge(2, 4, 0, 5, '第二个合并单元格', style) #合并第3行到第5行第1列到第6列的单元格 workbook.save('测试写excel_6.xls') # 设置单元格内容的对其方式: workbook = xlwt.Workbook() worksheet = workbook.add_sheet('测试表') alignment = xlwt.Alignment() # Create Alignment alignment.horz = xlwt.Alignment.HORZ_CENTER # 水平对齐: HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED alignment.vert = xlwt.Alignment.VERT_CENTER # 垂直对齐: VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED style = xlwt.XFStyle() # Create Style style.alignment = alignment # Add Alignment to Style worksheet.write(0, 0, '对齐测试', style) workbook.save('测试写excel_7.xls') # 为单元格议添加边框 workbook = xlwt.Workbook() worksheet = workbook.add_sheet('测试表') borders = xlwt.Borders() # DASHED虚线,NO_LINE没有线,THIN实线 borders.left = xlwt.Borders.DASHED borders.right = xlwt.Borders.DASHED borders.top = xlwt.Borders.DASHED borders.bottom = xlwt.Borders.DASHED # 边框上色 borders.left_colour = 0x40 borders.right_colour = 0x40 borders.top_colour = 0x40 borders.bottom_colour = 0x40 style = xlwt.XFStyle() style.borders = borders worksheet.write(0, 0, '添加边框效果', style) workbook.save('测试写excel_8.xls') # 为单元格设置背景色: workbook = xlwt.Workbook() worksheet = workbook.add_sheet('测试表') pattern = xlwt.Pattern() pattern.pattern = xlwt.Pattern.SOLID_PATTERN # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12 pattern.pattern_fore_colour = 5 # 颜色代码: 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, style = xlwt.XFStyle() style.pattern = pattern worksheet.write(0, 0, '背景色测试', style) workbook.save('测试写excel_9.xls')

三、 xlutils修改excel

xlwt只能创建一个全新的excel文件,然后对这个文件进行写入内容以及保存。

但是大多数情况下我们希望的是读入一个excel文件,然后进行修改或追加,这个时候就需要xlutils了。

1、Python安装xlutils

pip install xlutils

2、、导入模块

import xlutils

3、测试代码

from xlrd import open_workbook from xlutils.copy import copy rb = open_workbook('测试读excel.xls') # 通过sheet_by_index()获取的sheet没有write()方法 rs = rb.sheet_by_index(0) wb = copy(rb) # 利用xlutils.copy函数,将xlrd.Book转为xlwt.Workbook,再用xlwt模块进行存储 # 通过get_sheet()获取的sheet有write()方法 ws = wb.get_sheet(0) ws.write(1, 1, '测试人员')#将第二行第二列的内容修改 wb.save('测试读excel.xls')

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。