活动地址:优快云21天学习挑战赛
一. xlrd 读取excel操作
xlrd模块用于读取Excel的数据,速度非常快。支持.xls 和 .xlsx两种文件格式的读取。
1. cmd控制台安装模块:
pip install xlrd
2. 导入模块:
import xlrd
3.制作测试的数据表

4. 打开文件
wb = xlrd.open_workbook("./a.xls")
print(wb)
注意:这里可能会报错,是由于xlrd的版本太高所致,xlrd不支持xlsx格式数据的读取了,我们只需要降低其版本即可解决!这里有两种方式,一种是命令行中使用pip命令,另一种是pycharm直接图形化界面操作。
raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not supported’)
xlrd.biffh.XLRDError: Excel xlsx file; not supported

5. 获取所有表名
sheet_names_list = wb.sheet_names()
print(sheet_names_list)
6. 指定sheet表
# 方式1:索引顺序获取
sheet_1 = wb.sheet_by_index(0)
# 方式2:名称获取
sheet_2 = wb.sheet_by_name("Sheet1")
7. 对sheet表的行操作
# 1.获取sheet表总函数:sheet.nrows
print("总行数为:", sheet_1.nrows)
# 2.返回由该行中所有的单元格对象组成的列表,列表内是键值对: sheet.row(1)
print(sheet_1.row(1))
# 或者sheet.row_slice(1)
print(sheet_1.row_slice(1))
# 3.返回指定行的所有单元格数值组成的列表: sheet.row_values(rowx, start_colx=0, end_colx=None)
print(sheet_1.row_values(1))
# 4.返回指定行的有效长度:sheet.row_len(rowx)
print("返回指定行的有效长度:", sheet_1.row_len(1))
print('-' * 20)
# 5. 读取整个表
for i in range(sheet_1.nrows):
print(sheet_1.row_values(i))
8. 对sheet表的列操作
# 1. 返回指定sheet表的有效列数:sheet.ncols
print("总列数为:", sheet_1.ncols)
# 2. 返回由该列中所有的单元格对象组成的列表,列表内是键值对:sheet.col(1)
print(sheet_1.col(1))
# 或者sheet.col_slice(1)
print(sheet_1.col_slice(1))
# 3. 返回指定列的所有单元格数值组成的列表:sheet.col_values(colx, start_colx=0, end_colx=None)
print(sheet_1.col_values(0)) # 带列名
print(sheet_1.col_values(0, 1)) # 不带列名
print('-' * 20)
# 4. 读取全部表
for i in range(sheet_1.ncols):
print(sheet_1.col_values(i))
二、xlwt 写入Excel表操作
xlwt 模块可以将数据写入到 Excel 工作簿中。目前已支持写入.xls 和 .xlsx两种文件格式。
1. cmd控制台安装模块:
pip install xlwt
2. 导入模块:
import xlwt
3.写入单个数据
import xlwt
# 1. 创建Excel表对象
workbook = xlwt.Workbook(encoding='utf8')
# 2. 新建sheet表
worksheet = workbook.add_sheet('Sheet1')
# 3. 写入数据到指定单元格
worksheet.write(0, 0, "python")
# 4. 保存文件分两种格式
workbook.save('test.xls')
workbook.save('test.xlsx')
4. 写入多个数据
import xlwt
data_list = [('小白', '20', '男'), ('小黑', '21', '男'), ('小红', '20', '女')]
# 1. 创建Excel表对象
workbook = xlwt.Workbook(encoding='utf8')
# 2. 新建sheet表
worksheet = workbook.add_sheet('Sheet1')
# 3. 自定义列名
col1 = ('姓名', '年龄', '性别')
# 4. 将列属性元组col写进sheet表单中第一行
for i in range(0, len(col1)):
worksheet.write(0, i, col1[i])
# 5. 将数据写进sheet表单中
for i in range(0, len(data_list)):
data = data_list[i]
for j in range(0, len(col1)):
worksheet.write(i + 1, j, data[j])
# 6. 保存文件分两种格式
workbook.save('test.xls')
5.设置列宽
for c in range(len(col1)):
worksheet.col(c).width = 256 * 24
6.设置行高
# 5. 将数据写进sheet表单中
for i in range(0, len(data_list)):
data = data_list[i]
for j in range(0, len(col1)):
worksheet.write(i + 1, j, data[j])
# 6. 设置行高
worksheet.row(i + 1).height_mismatch = True
worksheet.row(i + 1).height = 1600 # 设置行高
7.设置单元格风格
def body_style():
# 一、创建一个样式对象,初始化样式 style
style = xlwt.XFStyle() # Create Style对象
# 二、字体风格设置
font = xlwt.Font() # Create Font对象
font.name = "SimSun" # 设置字体类型,宋体
font.colour_index = 4 # 设置字体颜色
font.height = 20 * 12 # 字体大小,12为字号,20为衡量单位
font.bont = True # 设置字体加粗
font.underline = True # 下划线
font.italic = True # 斜体字
# 二、背景设置
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
pattern.pattern_fore_colour = 4 # 给背景颜色赋值
# 三、边框设置
borders = xlwt.Borders() # 创建边框对象, # .DASHED:虚线;.NO_LINE:没有
# 上下左右都添加边框
borders.left = 1
borders.right = 1
borders.top = 1
borders.bottom = 1
# 设置边框颜色
borders.left_colour = 2
borders.right_colour = 2
borders.top_colour = 2
borders.bottom_colour = 2
# 四、位置设置
alignment = xlwt.Alignment()
alignment.horz = 1 # 设置水平位置,0是左对齐,1是居中,2是右对齐
alignment.wrap = 1 # 设置自动换行
# 五、设置好之后,全部都加到style上
style.alignment = alignment
style.font = font
style.borders = borders
return style
本文详细介绍了xlrd和xlwt两个Python模块的使用方法。xlrd用于读取Excel文件,包括.xls和.xlsx格式,提供了快速高效的数据读取功能。xlwt则支持将数据写入到Excel工作簿中,同样支持.xls和.xlsx两种格式。文章通过具体实例演示了如何利用这两个模块进行Excel文件的操作。
5635

被折叠的 条评论
为什么被折叠?



