xlwt\xlrd\xlutils库

xlwt库-写入数据

常用方法

函数名含义
xlwt.Workbook()创建一个新的Excel文件
xlwt.add_sheet(sheet_name)创建一个新的工作簿
sheet.write(row,col,data)向单元格中编写数据
workbook.save(path)保存数据到文件
""" xlwt写入数据 """
import xlwt
# 新建Excel文件
wb = xlwt.Workbook()
# 创建一个工作簿
ws = wb.add_sheet("Test Sheet")
# 向单元格中写入内容
ws.write(0,0,"单元格(1,A1)")

ws.write(1,0,"单元格(2,A1)")
ws.write(2,0,"单元格(3,A1)")

ws.write(0,1,"单元格(1,B1)")
ws.write(0,2,"单元格(1,C1)")
ws.write(2,2,"123")
# 保存文件
wb.save(r"./xlwt测试.xlsx")

 文档写入效果:

 设置字体样式

常用方法和属性

函数名&属性含义函数名&属性含义
xlwt.Font()创建字体样式xlwt.Borders()创建边框样式
font.name设置字体类型border.left

设置左边框

font.color_index设置字体颜色border.right设置右边框
font.height设置字体大小border.top设置上边框
font.bold设置字体加粗border.bottom设置下边框
font.underline设置字体下划线border.left_colour设置左边框颜色
font.italic设置字体斜体border.right_colour设置右边框颜色
xlwt.Alignment()创建字体位置样式border.top_colour设置上边框颜色
alignment.horz

设置字体横向位置

1左 2中 3右

border.bottom_colour设置下边框颜色
alignment.vert

设置字体纵向位置

0上 1中 2下

xlwt.Pattern()创建背景颜色样式
row.height_mismatch

设置是否开始行高

设置

True为开启

pattern.pattern设置背景样式
row.height

设置单元格行高,

值为256*像素点

xlwt.XFStyle()

设置总样式对象,

用于应用到单元格

col.width

设置单元格宽度,

值为256*像素点

xlwt.easyxf()设置总样式对象
import xlwt

# 创建excel文件
wb = xlwt.Workbook()
# 创建一个工作簿
ws = wb.add_sheet('样式测试')

# 创建一个字体样式
font = xlwt.Font()
font.name = "微软雅黑"  # 设置字体
font.height = 30*20    # 设置字体大小
font.bold = True       # 字体加粗
font.underline = True  # 下划线
font.italic = True     # 斜体
font.colour_index = 2  # 设置字体颜色

# 创建一个样式对象
style = xlwt.XFStyle()
style.font = font

ws.write(1,1,"竹筒饭")
ws.write(1,3,"竹筒饭",style)
wb.save("./样式测试.xlsx")

 设置边框样式

import xlwt

# 创建一个excel文件
wb = xlwt.Workbook()
# 创建一个工作簿
ws = wb.add_sheet("边框测试")
# 创建一个边框样式
border = xlwt.Borders()
"""
细实线:1  小粗实线:2
细虚线:3  中细虚线:4
大粗实线:5  双线:6
细点虚线:7
"""
border.top = 1
border.bottom = 6
border.left = 5
border.right = 7

# 设置线的颜色
border.top_colour = 3
border.bottom_colour = 4
border.left_colour = 5
border.right_colour = 2

# 创建一个样式对象
style = xlwt.XFStyle()
style.borders = border
ws.write(1,1,"竹筒饭")
ws.write(1,3,"竹筒饭",style)
wb.save("./边框测试.xlsx")

设置内容位置和背景颜色

import xlwt

# 创建一个excel文件
wb = xlwt.Workbook()
# 创建一个工作簿
ws = wb.add_sheet("位置和背景颜色测试")
# 创建一个位置样式
align = xlwt.Alignment()
# 设置上下位置
# 0上  1中  2下
align.vert = 1
# 设置左右位置
# 1左  2中 3右
align.horz = 2
# 设置单元格高度
ws.row(1).height_mismatch = True    # 开启设置高度的权限
ws.row(1).height = 50*50
ws.col(1).width = 50*50

# 创建一个颜色样式
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN    # 实心颜色
pattern.pattern_fore_colour = 5

# 创建一个样式对象
style = xlwt.XFStyle()
style.alignment = align
style.pattern = pattern

# 通过easyxf()设置样式
style1 = xlwt.easyxf('font:bold on,colour_index 2;align:vert center,horiz center')

ws.write(1,1,"竹筒饭")
ws.write(1,3,"竹筒饭",style)
ws.write(1,5,"竹筒饭",style1)
wb.save("./位置和背景颜色测试.xlsx")

 xlrd库-读取数据

常用方法和属性

函数名&属性含义
xlrd.open_workbook(path)打开一个excel文件
workbook.nsheets获取excel工作簿的数量
workbook.sheets()获取excel所有工作簿
workbook.sheet_names()获取excel的工作簿名
sheet.sheet_by_name(name)根据工作簿名获取工作簿
sheet.sheet_by_index(num)获取第num个工作簿
sheet.nrows获取工作簿总行数
sheet.row_values(num)获取第num行数据
sheet.col_values(num)获取第num列数据
sheet.cell(row,col)获取指定单元格
sheet.row(num)[col]获取指定单元格
cell.ctype获取单元格内容的数据类型
sheet.cell_value(row,col)获取指定单元格的值
cell.value()获取单元格的值

表格示例:

import xlrd2
# 打开excel文件
wb = xlrd2.open_workbook("./xlrd测试.xlsx")

# 获取excel工作簿数量
print(wb.nsheets)   # 3

# 获取所有工作簿,遍历打印
all_ws = wb.sheets()
for i in all_ws:
    print(i)
"""
Sheet  0:<Sheet1>
Sheet  1:<Sheet2>
Sheet  2:<Sheet3>
"""

# 获取所有工作簿名
ws_names = wb.sheet_names()
print(ws_names)     # ['Sheet1','Sheet2','Sheet3']

# 根据工作簿名获取工作簿
ws1 = wb.sheet_by_name("Sheet1")
print(ws1)    # Sheet 0:<Sheet1>

# 根据工作簿索引获取工作簿
ws2 = wb.sheet_by_index(2)

# 获取工作簿总行数
sheet1_rows = ws1.nrows
print(sheet1_rows)  # 7

# 获取工作簿第1行数据
sheet1_row_data = ws1.row_values(1)
print(sheet1_row_data)  # ['A2', 'B2', 'C2', 'D2', '']

# 获取工作簿第1列数据
sheet1_col_data = ws1.col_values(1)
print(sheet1_col_data)  # ['B1', 'B2', 'B3', 'B4', 'B5', 'B6', '']

# 获取E7单元格的数据
cell_E7 = ws1.cell(6, 4)
print(cell_E7)  # text:'E7'

# 获取单元格内容的数据类型
print(cell_E7.ctype)    # 1

# 获取第1行第2列单元格的数据
print(ws1.row(0)[1])  # text:'B1'
print(ws1.row(0)[1].value)    # B1

# 获取单元格的值
print(cell_E7.value)    # E7

# 获取所有单元格数据
for row in range(ws1.nrows):
    for col in range(ws1.ncols):
        print(f"第{row}行{col}列数据:{ws1.cell_value(row,col)}")

xlutils-更新数据

常用方法

函数名含义
xlutils.copy.copy(workbook)复制指定excel文件

表格示例:将红框中的数据补齐

import xlrd2
from xlutils.copy import copy

# 读取excel
wb = xlrd2.open_workbook("./xlrd测试.xlsx")
# 复制excel
wb_copy = copy(wb)

""" 开始修改数据 """
# 获取第1个Sheet
ws = wb_copy.get_sheet(0)
# 增加数据
for row in range(0,6):
    ws.write(row, 4, f"E{row+1}")
for col in range(0,4):
    ws.write(6, col, f"{chr(ord('A')+col)}7")

wb_copy.save("./xlrd测试-copy.xlsx")

更新效果:新生成了xlrd测试-copy.xlsx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值