目录
一、Excel表格的读取
使用xlrd模块,进行读取
模块下载: pip3 install xlrd
演示代码如下:
import xlrd
# 创建Excel文件对象
rdata = xlrd.open_workbook("test.xls") # 参数为文件路径,可填写相对或绝对路径
# 获取详细sheet页对象,方法主要有以下:
# 第一种,索引直接获取
sheet_01 = rdata.sheet_by_index(0) # 获取第一页表对象
# 第二种,获取所有表对象,在具体获取单个
sheets = rdata.sheets() # 返回格式:列表(返回当前文件的所有sheet页对象,以列表形式)
sheet_02 = sheets[1] # 获取第二页表对象
# 第三种,表名获取
sheet_names = rdata.sheet_names() # 返回格式:列表(返回当前文件所有sheet页名字,以列表格式)
sheet_03 = rdata.sheet_by_name("name") # 传入参数为具体表名
# 获取内容,方法:
print(sheet_01.nrows) # 获取当前sheet页,所有行数
print(sheet_01.ncols()) # 获取当前sheet页,所有列数
print(sheet_01.row(0)) # 获取当前sheet页,第一行内容,返回格式:列表
print(sheet_01.col(0)) # 获取当前sheet页,第一列内容,返回格式:列表
value = sheet_01.row_values(0) # 返回第一行内容,只返回值,返回格式:列表
value = sheet_01.cell(x,y) # 读取指定单元格
value = sheet_01.cell(x,y).value # 读取指定单元格值
二、 Excel表格的写 入
使用xlwt模块,进行读取
模块下载: pip3 install xlwt
演示代码如下
import xlwt
# 创建一个空文件对象
wdata = xlwt.Workbook()
# 添加新的sheet页
sheet_01 = wdata.add_sheet("test01", cell_overwrite_ok=True) # 第一个参数:sheet页名字, 第二个允许可重复操作单元格
x = 0 # row
y = 0 # col
sheet_01 .write(x,y, "测试数据写入") # 传入坐标位置x,y 第三个参数:数据
# 合并单元格
sheet_01 .write_merge(r1,r2,c1,c2) # r1起始行,r2终止行,c1起始列,c2终止列
wdata.save("test.xls") # 写完数据保存
三、Excel表格修改
模块下载: pip3 install xlutils
演示代码如下:
import xlutils.copy as copys
import xlrd
# 创建对象
change_target = xlrd.open_workbook("test.xls") # 打开要修改文件
wdata = copys.copy(change_target) # 创建实际操作副本
sheet_01 = wdata.get_sheet(0) # 获取修改sheet页对象
sheet_01.write(x,y,value) # 传入坐标位置和值
wdata.save("test.xls") # 修改完后保存
四、设置表格式
演示代码如下:
import xlwt
wdata = xlwt.Workbook()
sheet_01 = wdata.add_sheet("test", cell_overwrite_ok=True)
# 设置对齐方向
alignment = xlwt.Alignment()
# 0x01(左端对齐)、0x02(水平方向上居中对齐)、0x03(右端对齐)
alignment.horz = 0x01
# 0x00(上端对齐)、 0x01(垂直方向上居中对齐)、0x02(底端对齐)
alignment.vert = 0x01
# 设置自动换行
alignment.wrap = 1
# 设置列宽(以第一列为例:)
sheet_01.col(0).width = 256 * 14 # 基数为256,14为字符长度
# 设置行高(以第一行为例:)
sheet_01.row(0).height_mismatch = True
sheet_01.row(0).height = 20 * 14 # 20为基准数,14意为14磅
# 设置字体
font = xlwt.Font()
font.name = "宋体" # 设置字体格式
font.height = 20*11 # 字体大小,11为字号,20为衡量单位
font.bold = False # 字体加粗
font.underline = False # 下划线
font.italic = True # 斜体字
font.colour_index = 0 # 字体颜色
# 设置边框
borders = xlwt.Borders()
# 细实线:1,小粗实线:2,细虚线:3,中细虚线:4,大粗实线:5,双线:6,细点虚线:7
# 大粗虚线:8,细点划线:9,粗点划线:10,细双点划线:11,粗双点划线:12,斜点划线:13
borders.left = 1
borders.right = 2
borders.top = 3
borders.bottom = 4
# 边框颜色(0, 1, 2, 3 ,4.....)
borders.left_colour = 0
borders.right_colour = 0
borders.top_colour = 0
borders.bottom_colour = 0
# 设置背景颜色
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN # 设置背景颜色的模式
pattern.pattern_fore_colour = 0 # 背景颜色(0,1,2......)
# 最后确认设定格式
style = xlwt.XFStyle() # 初始化格式
style.alignment = alignment
style.font = font
style.borders = borders
style.pattern = pattern
# 应用
sheet_01.write(0,0, "演示", style)