通过程序操作excel表格是编程中比较常见的操作,python本身不能直接操作excel,需要安装第三方的模块来实现excel的操作。
Python中可以操作excel模块主要有:
1、 xlrd 模块实现exlcel表格读取
2、 xlwd 模块实现excel表格创建和写入
下面主要以xlrd和xlwd模块为例,给大家分享下这两个模块的使用。
一、 模块安装
使用模块前,需要提前在电脑上进行安装,如果是在线安装的话,需要确保你的电脑能够上网。
二、 excel表格读取
提前在我的电脑D盘根目录下创建了一个名为test的excel表格,其内容如下:
2.1 导入模块并打开excel文档
import xlrd # 导入xlrd 模块
# 读取指定路径的excel文档,返回一个工作簿对象
workbook = xlrd.open_workbook("test.xlsx")
print(workbook) #
由于一个工作簿文档里可能包含多个sheet,对工作簿中的sheet_names方法来获取当前有哪些sheet。
import xlrd # 导入xlrd 模块
# 读取指定路径的excel文档,返回一个工作簿对象
workbook = xlrd.open_workbook("test.xlsx")
sheet_lst = workbook.sheet_names() # 打印当前的工作表的名称,以列表形式返回
print(sheet_lst) # ['Sheet1']
2.2 读取指定sheet表的内容
对于工作簿对象,通过调用sheet_by_name或sheet_by_index属性来获取指定sheet。
# encoding:utf-8
import xlrd # 导入xlrd 模块
# 读取指定路径的excel文档,返回一个工作簿对象
workbook = xlrd.open_workbook("test.xlsx")
sheet_lst = workbook.sheet_names() # 打印当前的工作表的名称,以列表形式返回
tp = workbook.sheet_by_name(sheet_lst[0]) # 获取sheet对象
tp2 = workbook.sheet_by_index(0)
要获取指定sheet对象的行数和列表可以使用nrows和ncols来获取。
tp = workbook.sheet_by_name(sheet_lst[0]) # 获取sheet对象 # 获取选定sheet的总行数 print(tp.nrows) # 获取指定sheet的总列数 print(tp.ncols)
打印指定sheet中的所有内容
使用行列索引
# 打印sheet所有的内容,可以把表格内容看做一个二维数组 for i in range(tp.nrows): for j in range(tp.ncols): print(tp.row(i)[j].value,end=" ") print() tp2 = workbook.sheet_by_index(0)
使用单元格
for i in range(tp.nrows): for j in range(tp.ncols): print(tp.cell(i,j).value,end=" ") print()
姓名 年龄 数学 语文 张三 15.0 92.0 93.0 李四 16.0 93.0 90.0 王五 4.0 87.0 89.0
三、 创建一个excel表
3.1 创建一个sheet表
生成Workbook对象并向其添加一个表见下例:
import xlwt
# 创建一个工作簿
workbook = xlwt.Workbook()
# 在工作簿中添加一表,表名为sheet1
sheet = workbook.add_sheet("sheet1")
3.2 向刚添加的sheet1表写入内容
# 创建一个工作簿
workbook = xlwt.Workbook()
# 在工作簿中添加一表,表名为sheet1
sheet = workbook.add_sheet("sheet1", cell_overwrite_ok=True)
sheet.write(0,0,"姓名")
sheet.write(0,1,"年龄")
sheet.write(0,2,"成绩")
workbook.save("test_1.xls")
程序运行完,在d盘的根目录下打开test1文件如下图所示,write方法中的第一个参数指定行索引,第二个参数指定列索引,第三个数指定要写入的数据。
3.3 设置写入单元格的字体大小,颜色和字体类型
import xlwt
# 创建一个工作簿
workbook = xlwt.Workbook()
# 在工作簿中添加一表,表名为sheet1
sheet = workbook.add_sheet("sheet1", cell_overwrite_ok=True)
# 为样式创建字体
font = xlwt.Font()
# 字体类型
font.name = "微软雅黑"
# 字体大小,11为字号,20为衡量单位
font.height = 22 * 11
# 字体颜色见
font.colour_index = 2
font.bold = True # 字体加粗
style = xlwt.XFStyle()
style.font = font
# 设置列宽
sheet.col(0).width = 11*200
sheet.write(1,0,"姓名",style)
sheet.write(1,1,"年龄")
sheet.write(1,2,"成绩")
workbook.save("test_1.xls")
执行结果如下:
颜色值表如下:
import xlwt
# 创建一个工作簿
workbook = xlwt.Workbook()
# 在工作簿中添加一表,表名为sheet1
sheet = workbook.add_sheet("sheet1", cell_overwrite_ok=True)
# 为样式创建字体
font = xlwt.Font()
# 字体类型
font.name = "微软雅黑"
# 字体大小,11为字号,20为衡量单位
font.height = 22 * 11
# 字体颜色见
font.colour_index = 2
font.bold = True # 字体加粗
borders = xlwt.Borders() # 为样式创建边框
borders.left = 6
borders.right = 6
borders.top = 6
borders.bottom = 6
style = xlwt.XFStyle()
style.font = font
style.borders = borders
# 设置列宽
sheet.col(0).width = 11 * 200
sheet.write(0, 0, "姓名", style)
sheet.write(0, 1, "年龄", style)
sheet.write(0, 2, "成绩", style)
workbook.save("test_1.xls")



