安装xlrd模块
win+r 键调出cmd 安装xlrd模块
pip install xlrd
注意:
新版本的xlrd模块不支持.xlsx格式的Excel,只支持.xls格式的Excel,若想打开.xls格式Excel,请安装1.2.0版本xlrd模块
pip install xlrd==1.2.0
如果之前已经安装了新版本xlrd模块,则需要先卸载原有模块,再进行1.2.0版本的安装
pip uninstall xlrd
pip install xlrd==1.2.0
安装xlwt模块
pip install xlwt
区分工作簿与工作表
工作簿:整个表格文件
工作表:文件中的一个表格(Sheet)
获取单元格数据
import xlrd
# open_workbook函数加载xlsx工作蒲文件
# Excelbook是一个工作簿对象
Excelbook = xlrd.open_workbook(r"E:\XUAOWEN_python\联合国人员.xlsx")
# 获取工作表的三种方式 皆返回工作表对象
sh1 = Excelbook.sheet_by_index(0)
sh2 = Excelbook.sheet_by_name('Sheet1')
sh3 = Excelbook.sheets()[0]
# 获取单元格的值的两种方式
# 注意行数与列数从零数起,与表格标示不一致
cellvalue1 = sh1.cell_value(rowx=2, colx=3) # 行号 列号
cellvalue2 = sh1.cell(2, 3).value # 行号 列号
print(cellvalue1) # 获取单元格数值
print(cellvalue2) # 获取单元格数值
获取整行或整列数据
import xlrd
# open_workbook函数加载xlsx工作蒲文件
# Excelbook是一个工作簿对象
Excelbook = xlrd.open_workbook(r"E:\XUAOWEN_python\美国联邦.xlsx")
# 获取工作表的三种方式 皆返回工作表对象
sh1 = Excelbook.sheet_by_index(0)
sh2 = Excelbook.sheet_by_name('Sheet1')
sh3 = Excelbook.sheets()[0]
print(sh1.row(0)) # 获取指定行数据 从0开始 返回cell对象的列表
print(sh1.col(0)) # 获取指定列数据 从0开始 返回cell对象的列表
# 可用for循环遍历 行 或 列
for i in sh1.row(3):
print(i.value)
for i in sh1.col(3):
print(i.value)
获取工作表的有效数据为多少行(列)
import xlrd
# open_workbook函数加载xlsx工作蒲文件
# Excelbook是一个工作簿对象
Excelbook = xlrd.open_workbook(r"E:\XUAOWEN_python\表格文件.xlsx")
# 获取工作表的三种方式 皆返回工作表对象
sh1 = Excelbook.sheet_by_index(0)
sh2 = Excelbook.sheet_by_name('Sheet1')
sh3 = Excelbook.sheets()[0]
print(sh2.nrows) # 获取工作表的有效数据为多少行
print(sh2.ncols) # 获取工作表的有效数据为多少列
创建工作簿 工作表 写入数据
import xlwt
# 创建新的工作簿文件
new_workbook = xlwt.Workbook()
# 创建新的工作表 并命名
sheet1 = new_workbook.add_sheet('Sheet1')
# 写入数据 格式为 sheet1.write(行, 列, 内容)
sheet1.write(0, 0, '我被写入')
sheet1.write(0, 1, '我是第二个数据')
sheet1.write(1, 5, '我是第三个数据')
# 保存文件 并 设置保存路径与文件名
new_workbook.save('./表格.xls')
使用for循环写入多个数据
import xlwt
# 创建新的工作簿文件
new_workbook = xlwt.Workbook()
# 创建新的工作表 并命名
sheet1 = new_workbook.add_sheet('Sheet1')
list01 = ['数据1', '数据2', '数据3', '数据4', '数据5']
for i in list01:
# 写入数据 格式为 sheet1.write(行, 列, 内容)
sheet1.write(0, list01.index(i), i)
# 保存文件 并 设置保存路径与文件名
new_workbook.save('./表格.xls')
设置指定行(列)的行高(列宽)
import xlwt
# 创建新的工作簿文件
new_workbook = xlwt.Workbook()
# 创建新的工作表 并命名
sheet1 = new_workbook.add_sheet('Sheet1')
# 写入数据 格式为 sheet1.write(行, 列, 内容)
sheet1.write(0, 0, '我被写入')
sheet1.write(0, 1, '我是第二个数据')
# 设置指定行的行高 20为一个衡量单位 用20乘要设置的单位数
sheet1.row(0).height_mismatch = True # 行高初始化 必要代码
sheet1.row(0).height = 20*50
# 设置指定列的列宽 256为一个衡量单位 用256乘要设置的单位数
sheet1.col(0).width = 256*20
# 保存文件 并 设置保存路径与文件名
new_workbook.save('./表格.xls')
设置字体的风格样式
字体 字号 颜色 加粗 下划线 等
import xlwt
# 创建新的工作簿文件
new_workbook = xlwt.Workbook()
# 创建新的工作表 并命名
sheet1 = new_workbook.add_sheet('Sheet1')
##########样式1##########
# 初始化样式
style01 = xlwt.XFStyle()
# 创建字体属性对象
font01 = xlwt.Font() # font 设置 字体 字号 颜色 加粗 下划线 等
# 属性的值初始化
font01.name = '微软雅黑' # 字体
font01.bold = True # 加粗
font01.height = 20*20 # 字号*20
font01.underline = True # 下划线
# ESCAPEMENT_SUBSCRIPT 字体悬空位于下方 , ESCAPEMENT_NONE 字体没有escapement效果
font01.escapement = xlwt.Font.ESCAPEMENT_SUPERSCRIPT # 字体悬空位于上方
font01.colour_index = xlwt.Style.colour_map['blue'] # 字体颜色
# 将设置好的属性对象赋值给style的对应属性
style01.font = font01
# 写入带样式的数据 格式为 sheet1.write(行, 列, 内容, 样式)
sheet1.write(5, 5, '我被写入', style01)
####################
##########样式2##########
style02 = xlwt.XFStyle()
# 创建字体属性对象
font02 = xlwt.Font() # font 设置 字体 字号 颜色 加粗 下划线 等
# 属性的值初始化
font02.name = '宋体' # 字体
font02.bold = True # 加粗
font02.height = 50*20 # 字号*20
# 将设置好的属性对象赋值给style的对应属性
style02.font = font02
# 写入带样式的数据 格式为 sheet1.write(行, 列, 内容, 样式)
sheet1.write(5, 8, '我被写入', style02)
####################
# 保存文件 并 设置保存路径与文件名
new_workbook.save('./表格.xls')
设置字体样式 单元格样式 边框样式 背景色
import xlwt
# 创建新的工作簿文件
new_workbook = xlwt.Workbook()
# 创建新的工作表 并命名
sheet1 = new_workbook.add_sheet('Sheet1')
####################
# 初始化样式
style01 = xlwt.XFStyle()
###字体属性###
# 创建字体属性对象
font01 = xlwt.Font() # 字体属性
# 字体属性的值初始化
font01.name = '微软雅黑' # 字体
font01.bold = True # 加粗
font01.height = 20*20 # 字号*20
font01.underline = True # 下划线
# ESCAPEMENT_SUBSCRIPT 字体悬空位于下方 , ESCAPEMENT_NONE 字体没有escapement效果
font01.escapement = xlwt.Font.ESCAPEMENT_SUPERSCRIPT # 字体悬空位于上方
font01.colour_index = xlwt.Style.colour_map['blue'] # 字体颜色
# 将设置好的属性对象赋值给style的对应属性
style01.font = font01
#######
###边界属性###
# 创建边界属性对象
borders01 = xlwt.Borders() # 边界属性
# 边界属性的值初始化
borders01.top = 2 # 上边框线的粗细 单位:像素
borders01.bottom = 2 # 下边框线的粗细 单位:像素
borders01.left = 2 # 左边框线的粗细 单位:像素
borders01.right = 2 # 右边框线的粗细 单位:像素
borders01.top_colour = xlwt.Style.colour_map['blue'] # 上边框的颜色
borders01.bottom_colour = xlwt.Style.colour_map['blue'] # 下边框的颜色
borders01.left_colour = xlwt.Style.colour_map['green'] # 左边框的颜色
borders01.right_colour = xlwt.Style.colour_map['blue'] # 右边框的颜色
# 将设置好的属性对象赋值给style的对应属性
style01.borders = borders01
######
###对齐属性###
# 创建对齐属性对象
alignment01 = xlwt.Alignment() # 对齐属性
# 对齐属性的值初始化 水平方向
alignment01.vert = xlwt.Alignment.VERT_TOP # 上对齐
#alignment01.vert = xlwt.Alignment.VERT_CENTER # 水平居中
#alignment01.vert = xlwt.Alignment.VERT_BOTTOM # 下对齐
# 垂直方向
alignment01.horz = xlwt.Alignment.HORZ_LEFT # 左对齐
#alignment01.horz = xlwt.Alignment.HORZ_CENTER # 垂直居中
#alignment01.horz = xlwt.Alignment.HORZ_RIGHT # 右对齐
# 将设置好的属性对象赋值给style的对应属性
style01.alignment = alignment01
######
###单元格背景颜色###
patern01 = xlwt.Pattern()
patern01.pattern = xlwt.Pattern.SOLID_PATTERN # 设置模式
patern01.pattern_fore_colour = xlwt.Style.colour_map['yellow'] # 单元格背景颜色
style01.pattern = patern01
#######
# 写入带样式的数据 格式为 sheet1.write(行, 列, 内容, 样式)
sheet1.write(5, 5, '我被写入', style01)
####################
# 保存文件 并 设置保存路径与文件名
new_workbook.save('./表格.xls')
封装样式
import xlwt
# 创建新的工作簿文件
new_workbook = xlwt.Workbook()
# 创建新的工作表 并命名
sheet1 = new_workbook.add_sheet('Sheet1')
# 封装样式
def style1():
style = xlwt.XFStyle() # 初始化样式
font = xlwt.Font() # 字体属性
# 字体属性的值初始化
font.name = '微软雅黑' # 字体
font.bold = True # 加粗
font.height = 20 * 20 # 字号*20
font.underline = True # 下划线
style.font = font
###边界属性###
# 创建边界属性对象
borders = xlwt.Borders() # 边界属性
# 边界属性的值初始化
borders.top = 2 # 上边框线的粗细 单位:像素
borders.bottom = 2 # 下边框线的粗细 单位:像素
borders.left = 5 # 左边框线的粗细 单位:像素
borders.right = 2 # 右边框线的粗细 单位:像素
borders.top_colour = xlwt.Style.colour_map['blue'] # 上边框的颜色
borders.bottom_colour = xlwt.Style.colour_map['blue'] # 下边框的颜色
borders.left_colour = xlwt.Style.colour_map['green'] # 左边框的颜色
borders.right_colour = xlwt.Style.colour_map['blue'] # 右边框的颜色
# 将设置好的属性对象赋值给style的对应属性
style.borders = borders
######
return style
# 写入带样式的数据 格式为 sheet1.write(行, 列, 内容, 样式)
sheet1.write(5, 5, '我被写入', style1())
# 保存文件 并 设置保存路径与文件名
new_workbook.save('./表格.xls')
合并单元格
import xlwt
# 创建新的工作簿文件
new_workbook = xlwt.Workbook()
# 创建新的工作表 并命名
sheet1 = new_workbook.add_sheet('Sheet1')
# 写入带样式的数据 格式为 sheet1.write(行, 列, 内容, 样式)
sheet1.write(10, 8, '我被写入', )
####################
# 写入数据合并单元格
# 五个数据为 合并起始行 合并结束行 合并起始列 合并结束列 样式(可选)
sheet1.write_merge(2, 5, 0, 2, '我被合并写入',)
####################
# 保存文件 并 设置保存路径与文件名
new_workbook.save('./表格.xls')