1.利用xlrd模块读取
xlrd模块可以读取(.xls)或者(.xlsx)文件中的内容,以下是基本使用介绍: 我们提前在文件夹中建好了文件:data1.xls,其中内容如下图: 导入库:
import xlrd
打开文件:
data = xlrd.open_workbook('data1.xls')#文件名或路径名,若含有中文需要加r
获取一个工作表:
table = data.sheet_by_name('mysheet1')
'''
获取工作表的方式除了上述通过名称获取的方式外,还有以下两种:
table = data.sheets()[0]
table = data.sheet_by_index(sheet_indx)
'''
获取一个工作表后,可以对其中的行、列或单元格进行操作,如下: 对行的操作:
nrows = table.nrows#获取该表中的行数
table.row(i)#获取第i行所有单元格对象组成的列表
table.row_values(i,start_colx=0,end_colx=None)#获取第i行所有单元格的数据组成的列表
table.row_len(i)#获取第i行有多少个数据
以第0行为例,后三种命令的结果为: 对列的操作与对行的操作类似,将上述代码中的row替换为col即可 如执行命令:
print(table.col_values(0))
结果为:
对单元格的操作:
table.cell(rowx,colx)#获取该单元格对象
table.cell_value(rowx,colx)#获取该单元格数据
2.利用xlwt模块写入等操作
xlwt可以用于创建新的.xls表格,或者在原表格基础上写入新的内容
创建新表格并写入
文件夹初始状态: 执行以下代码:
import xlwt
workbook = xlwt.Workbook(encoding=ascii)#创建文件
worksheet = workbook.add_sheet('my new sheet')#创建工作表,输入sheet名称
for i in range(10):
for j in range(10):
worksheet.write(i,j,i+j)#写入内容,输入行号、列号、单元格内容
workbook.save('data2.xls')#保存
文件夹状态: 可以看到data2.xls已经存入,我们将其打开后如图: 即成功写入内容
更改字体格式
执行以下代码
worksheet.write(0,0,'字体示例1')
style = xlwt.XFStyle()#初始化
font = xlwt.Font()
font.name = '黑体'#字体
font.bold = True#加粗
font.underline = True#下划线
font.italic = True#斜体
style.font = font#应用
worksheet.write(1,1,'字体示例2',style)
结果如图: 对比默认字体格式可知,示例2应用了自定义字体。
更改单元格格式
对单元格格式的更改主要是设置列宽、行高、边框、填充以及合并单元格 设初始命令为:
worksheet.write(10,10,'00000000000')
结果为: 下面进行各种单元格格式改变:
#更改列宽:
worksheet.col(10).width = 256*20
#更改行高:
style = xlwt.easyxf('font:height 360;')# 18pt,类型小初的字号
row = worksheet.row(10)
row.set_style(style)
#设置边框:
borders = xlwt.Borders()
'''
边框样式:
DASHED 虚线
NO_LINE 没有
THIN 细实线
THICK 粗实线
……
'''
borders.left = xlwt.Borders.DASHED
borders.right = xlwt.Borders.DASHED
borders.top = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THICK
style = xlwt.XFStyle()
style.borders = borders
worksheet.write(5,5,'边框',style)
#设置填充色:
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = 2
'''
颜色对应数字:
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(3,3,'填充',style)
#合并单元格:
worksheet.write_merge(6,7,7,9,'合并单元格')#合并6-7行,7-9列
#单元格对齐方式:
al = xlwt.Alignment()
al.horz = 0x02 # 设置水平居中
al.vert = 0x01 # 设置垂直居中
'''
可用对齐方式:
VERT_TOP = 0x00 上端对齐(垂直方向上)
VERT_CENTER = 0x01 居中对齐(垂直方向上)
VERT_BOTTOM = 0x02 低端对齐(垂直方向上)
HORZ_LEFT = 0x01 左端对齐(水平方向上)
HORZ_CENTER = 0x02 居中对齐(水平方向上)
HORZ_RIGHT = 0x03 右端对齐(水平方向上)
'''
style = xlwt.XFStyle()
style.alignment = al
worksheet.write(2,1, "对齐方式",style)
结果:
综上,运用xlrd、xlwt两个模块即可完成对excel的基本读写操作。
|