python xlrd模块 xlwd模块 python操作Excel python读取Excel

安装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')
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐奥雯XUAOWEN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值