Python操作Excel

Python操作Excel

一、xlrd获取Excel文件内容

xlwt只能对新建的Excel文件进行写操作xlutils可以对已经存在的Excel文件进行写操作

配置模块

import xlrd
from xlutils.copy import copy

1.打开指定的Excel文件

r_wb = xlrd.open_workbook('files/data1.xls')

2.对打开的工作簿对象进行拷贝,得到一个可写的工作簿

w_wb = copy(r_wb)

3.在新的工作表中写数据

sheet1 = w_wb.add_sheet('班级')

sheet1.write(0, 0, '班级名称')

4.在已经存在的工作表中写数据

将students中的’小明’, 改成’XiaoMing’

sheet2_n = w_wb.add_sheet('students2', cell_overwrite_ok=True)
sheet2_o = r_wb.sheet_by_index(0)
for r in range(sheet2_o.nrows):
    r_data = sheet2_o.row_values(r)
    col = 0
    for x in r_data:
        sheet2_n.write(r, col, x)
        col += 1

sheet2_n.write(1, 0, 'XiaoMing')

w_wb.save('files/datee.xls')

二、xlwt对Excel进行写操作

注意:

  1. xlwt操作单元格内容的时候,只能在空的单元格中添加数据,不能修改有数据的单元格内容

  2. xlrd打开工作簿不同进行写操作; xlwt打开工作簿只能进行写操作

导入模块

import xlwt
import os

1.创建工作簿对象(默认不会创建工作表)

wb = xlwt.Workbook()

2.新建表

student = wb.add_sheet('学生表', cell_overwrite_ok=True) # 如果在已经有数据的单元格再重新写入数据,创建表的时候参数cell_overwrite_ok的值必须是True

3.写入数据

student.write(0, 0, '姓名')

student.write(0, 0, '名字')

4.设置单元格样式

1)设置行的高度和列的宽度
a.设置指定行的高度

允许设置高度

student.row(0).height_mismatch = True

设置高度值

student.row(0).height = 10*60
b.设置指定列的宽度
student.col(1).width = 25 * 256
2)设置字体
a.创建样式对象
style1 = xlwt.XFStyle()
b.创建字体对象
font = xlwt.Font()
c.将字体对象绑定到样式对象中
style1.font = font
d.添加各种字体属性
font.name = '黑体'
font.bold = True
font.italic = True
font.height = 20*20
font.colour_index = 10
font.underline = True

font.escapement = xlwt.Font.ESCAPEMENT_SUPERSCRIPT

font.struck_out = True
e.将样式绑定到单元格中
student.write(0, 1, '年龄', style=style1)
3)设置边框样式
style2 = xlwt.XFStyle()
border = xlwt.Borders()
style2.borders = border
a.添加边框属性
边框样式:

细实线:1,小粗实线:2,细虚线:3,中细虚线:4,大粗实线:5,双 线:6,细点虚线:7,大粗虚线:8,细点划线:9,粗点划线:10,细双点划线:11, 粗双点划线:12,斜点划线:13

border.bottom = 10
# # 边框颜色

border.bottom_colour = 14
border.top = 2
border.top_colour = 53

student.write(1, 3, 'abc', style=style2)
4)设置填充样式
style3 = xlwt.XFStyle()
pa = xlwt.Pattern()
style3.pattern = pa

pa.pattern = xlwt.Pattern.SOLID_PATTERN
pa.pattern_fore_colour = 50

student.write(0, 5, '你好', style=style3)
5)设置对齐方式
style4 = xlwt.XFStyle()
ag = xlwt.Alignment()
style4.alignment = ag
ag.vert = xlwt.Alignment.VERT_CENTER
ag.horz = xlwt.Alignment.HORZ_LEFT

ag.rota = 90

ag.wrap = True      # 自动换行

student.write(0, 7, '久啊可接受的发生快递费啊书法课设计费', style=style4)

5.合并单元格

工作表.write_merge(r1, r2, c1, c2, 数据, style=样式对象)

student.write_merge(5, 7, 1, 1, '123')
student.write_merge(8, 8, 3, 6, '456')
student.write_merge(10, 16, 1, 2, 789)

wb.save('files/data2.xls')

三、xlutils对Excel进行写操作

xlwt只能对新建的Excel文件进行写操作;xlutils可以对已经存在的Excel文件进行写操作

导入模块

import xlrd
from xlutils.copy import copy

1. 打开指定的Excel文件

r_wb = xlrd.open_workbook('files/data1.xls', formatting_info=True)

2.对打开的工作簿对象进行拷贝,得到一个可写的工作簿

w_wb = copy(r_wb)

3.在新的工作表中写数据

sheet1 = w_wb.add_sheet('班级')

sheet1.write(0, 0, '班级名称')

4.在已经存在的工作表中写数据(将students中’小明’, 改成’XiaoMing’)

sheet2_n = w_wb.add_sheet('students2', cell_overwrite_ok=True)
sheet2_o = r_wb.sheet_by_index(0)
for r in range(sheet2_o.nrows):
    r_data = sheet2_o.row_values(r)
    col = 0
    for x in r_data:
        sheet2_n.write(r, col, x)
        col += 1

sheet2_n.write(1, 0, 'XiaoMing')

w_wb.save('files/data1.xls')
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

王薇蕴

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

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

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

打赏作者

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

抵扣说明:

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

余额充值