使用Python操作Excel(.xls)文件

使用Python操作Excel(.xls)文件

1.xlrd读操作

# 1.打开Excel文件
wb = xlrd.open_workbook('fifles/data1.xls')
# 2.获取所有工作表的表名
names = wb.sheet_names()
# 3.获取工作表
#  1.获取所有的工作表
all_sheet = wb.sheets()
#  2.获取某一张表
#   按表名
wb.sheet_by_name('')
#   按下标
wb.sheet_by_index()
# 4.获取最大行数和最大列数
m_r = sheet1.nrows
m_c = sheet1.ncols
# 5.获取单元格
# 按行或者按列获取数据
# # sheet1.row_values(指定行下标) 获取第几行所有数据(下标从0开始,返回结果是一个列表)
sheet1.row_values(4)
# 获取第几行几列到几列的数据
# sheet1.row_values(指定行下标, 起始列下标) ——获取第几行所有数据(下标从0开始,返回结果是一个列表)
# sheet1.row_values(指定行下标, 起始列下标,终止列下标) ——获取第几行所有数据(下标从0开始,返回结果是一个列表)
sheet1.row_values(4, 1, 2)
# 6.获取单元格
# sheet1.cell(行号,列号) 获取一个单元格
sheet1.cell(1, 0)
print(sheet1.cell(1, 0).value)
# 获取某一行所有有效单元格(返回一个列表)
sheet1.row(0)
# 获取某一列所有的有效单元格(返回一个列表)
sheet1.col(1)

2.xlwt写操作

# 写操作
import xlwt

# 1.创建工作簿(创建工作簿的时候不会自动创建工作表)
wb = xlwt.Workbook()
# 2.添加工作表
# 只添加表名,每个单元格的内容就不能覆写,
# student_sheet = wb.add_sheet('students')
# 后面添加 对cell_overwrite_ok赋值为True,单元格的数据就可以覆写
student_sheet1 = wb.add_sheet('students1', cell_overwrite_ok=True)
# 3.写入数据
# 表对象.write(行下标,列下标,'数据')   将数据写入到工作表中的指定位置
# 向2行2列的单元格写入数据(名字)
student_sheet1.write(1, 1, '名字')
# 4修改样式======================================
#  1.创建样式对象
sty1 = xlwt.XFStyle()
#  2.添加字体对象
font1 = xlwt.Font()
font1.name = '黑体'
font1.height = 20 * 20
font1.colour_index = 10
sty1.font = font1
#  3.添加边框样式
boder1 = xlwt.Borders()
boder1.bottom = 10
boder1.bottom_colour = 12
sty1.borders = boder1
#  4.添加对齐样式
a1 = xlwt.Alignment()
a1.vert = xlwt.Alignment.VERT_CENTER
sty1.alignment = a1
#  5.添加填充样式
p1 = xlwt.Pattern()
p1.pattern = xlwt.Pattern.SOLID_PATTERN
p1.pattern_fore_colour = 13
sty1.pattern = p1
#  6.合并单元格
# student_sheet1.write_merger(左上单元格行下标,右下单元格行下标,左上单元格列下标,右下单元格列下标,'单元格数据')
student_sheet1.write_merge(1, 2, 3, 4, "hello")
#  7.设置行高和列宽
#    设置列宽
# 表格对象.col(列下标).width = 高度
student_sheet1.col(2).width = 30 * 256
#    设置行高
# 表格对象.row(行下标).height_mismatch = True   允许设置行高
# 表格对象.col(列下标).width = 高度
student_sheet1.row(2).height_mismatch = True
student_sheet1.col(2).width = 30 * 60
student_sheet1.write(1, 1, '名字', style=sty1)
wb.save('fifles/students.xls')

3.utils修改操作

# 修改操作 utills
# 利用utills工具修改已经存在的xls文件
# xlrd只能读通过xlrd打开的Excel文件
# xlwt只能创建新的Excel文件无法获取已经存在的Excel文件
import xlrd, xlwt
from xlutils.copy import copy

# 1使用xlrd打开一个已经存在的只读的工作簿对象
wd = xlrd.open_workbook('fifles/data1.xls')
# 2.将只读的工作簿转换成可写的工作簿
wb1 = copy(wb)
sheet1 = wb1.add_sheet('')
wb1.save('fifles/data1.xls')

你可能感兴趣的:(自动化办公,python,excel,开发语言)