python 操作excel笔记
python 操作excel
一.xlrd获取Excel文件内容
openpyxl操作xlsx文件,xlrd操作xls文件
import xlrd
打开Excel文件获取工作簿对象(Excel文件只能是xls文件)
wb = xlrd.open_workbook('files/data1.xls')
获取工作表
# 1)获取所有工作表的表名 print(wb.sheet_names())
# a.获取所有的工作表
# 工作簿对象.sheets()
all_sheet = wb.sheets()
print(all_sheet) # [Sheet 0:<students>, Sheet 1:<teacher>]
# b.获取指定下标对应的工作表
# 工作簿对象.sheet_by_index(下标)
print(wb.sheet_by_index(0)) # Sheet 0:<students>
print(wb.sheet_by_index(1)) # Sheet 1:<teacher>
# c.获取指定名字对应的工作表
# 工作簿对象.sheet_by_name(表名)
students = wb.sheet_by_name('students')
# 3.获取表中的相关信息
# 1)获取表中数据部分的最大行数和最大列数
# 表对象.nrows - 最大行数
# 表对象.ncols - 最大列数
print(students.nrows, students.ncols)
# 2)按行或者按列获取数据
print(students.row_values(0)) # ['姓名', '性别', '年龄', '分数']
print(students.col_values(2)) # ['年龄', 20.0, 25.0, 22.0, 30.0]
print(students.col_values(0)) # ['姓名', '小明', '张三', '小花', '老王']
print(students.col_values(0, start_rowx=1)) # ['小明', '张三', '小花', '老王']
print(students.col_values(0, start_rowx=1, end_rowx=4)) # ['小明', '张三', '小花']
练习1:一行一行的获取整个表中所有的数据
for x in range(students.nrows):print(students.row_values(x))
练习2:一列一列的获取整个表中所有的数据
for x in range(students.ncols):print(students.col_values(x))
3.获取单元格对象
# a.工作表.cell(行下标, 列下标) - 获取指定位置对应的单元格
# 单元格对象.value
print(students.cell(0, 0)) # text:'姓名'
print(students.cell(0, 0).value) # 姓名# b.工作表.row(行下标) - 获取指定行中所有有数据的单元格对象
print(students.row(1)) # [text:'小明', text:'男', number:20.0, number:99.0]
print(students.row(1)[-1]) # number:99.0# c.工作表.col(列下标) - 获取指定列中所有有数据的单元格对象
print(students.col(2)) # [text:'年龄', number:20.0, number:25.0, number:22.0, number:30.0]
二.xlwt对Excel进行写操作
注意:1) xlwt操作单元格内容的时候,只能在空的单元格中添加数据,不能修改有数据的单元格内容
2) xlrd打开工作簿不同进行写操作; xlwt打开工作簿只能进行写操作
import xlwt
import os
# 1. 创建工作簿对象(默认不会创建工作表)
wb = xlwt.Workbook()
# 2.新建表
student = wb.add_sheet('学生表', cell_overwrite_ok=True)
# 3.写入数据
student.write(0, 0, '姓名')
如果在已经有数据的单元格再重新写入数据,创建表的时候参数cell_overwrite_ok的值必须是True
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 = 53student.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 = 50student.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)
# 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 = 0for x in r_data:sheet2_n.write(r, col, x)col += 1sheet2_n.write(1, 0, 'XiaoMing')w_wb.save('files/data1.xls')
python 操作excel笔记相关推荐
- python连接excel存放数据_有了这篇python操作Excel学习笔记,以后储存数据 办公很轻松!...
最近在做一些数据处理和计算的工作,因为数据是以.csv格式保存的,因此刚开始直接用Excel来处理.但是做着做着发现重复的劳动其实并没有多大的意义,于是就想着写个小工具帮着处理.以前正好在一本书上看到 ...
- Python 操作 Excel 学习笔记
Python 操作 Excel 文章目录 Python 操作 Excel 用 xlrd 模块读取 Excel xlrd 安装 xlrd 常用函数 打开,加载工作簿 获取工作表 Excel 行操作与列操 ...
- excel python 形状_何使用Python操作Excel绘制柱形图
开发工具,环境 PyCharm Python3 Office Excel 我们已经创建好了一张Excel表. 现在我们要根据已有的数据,往里面添加柱形图. 柱形图 BarChart 我们主要使用Bar ...
- python操作excel-自动化办公:python 操作Excel
原标题:自动化办公:python 操作Excel 1.安装 pip install xlsxwriter or easy_install xlsxwriter or tar -zxvf xlsxwri ...
- python与excel做数据可视化-python操作Excel、读取CVS与数据可视化
1. python操作Excel python操作Excel有多种module可以实现(xlrd.xlwt.xlutils.openpyxl.xlsxwriter),本文使用xlsxwriter这个m ...
- 用python处理excel-使用Python操作Excel文档(一)
Python | 使用Python操作Excel文档(一) 0 前言 在阅读本文之前,请确保您已满足或可能满足以下条件: 请确保您具备基本的Python编程能力. 请确保您会使用Excel. 请确保您 ...
- python处理excel表格实例-使用Python操作excel文件的实例代码
使用的类库 pip install openpyxl 操作实现 •工作簿操作 # coding: utf-8 from openpyxl import Workbook # 创建一个excel工作簿 ...
- python excel 自动化-python操作excel让工作自动化
某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...
- Python操作excel进行插入、删除行操作实例演示,利用xlwings库实现
Python 操作 Excel 之插入.删除行 第一章:整行插入与删除 ① Excel 的插入行实例演示 ② Excel 的删除行实例演示 第一章:整行插入与删除 ① Excel 的插入行实例演示 插 ...
- 全网最全 Python 操作 Excel 教程,建议收藏!
[欢迎关注微信公众号:厦门微思网络] 微思网络(官网):https://www.xmws.cn/ 0 Python Excel库对比 我们先来看一下python中能操作Excel的库对比(一共九个库) ...
最新文章
- .net中的IO体系介绍
- DBSCAN算法理论和Python实现
- 腾讯游戏自研学术成果:基于图分割的网络表征学习初始化技术
- 【机器学习】逻辑回归小结
- Spark in action on Kubernetes - Playground搭建与架构浅析
- “钉钉打卡神器”开发者被判五年半!
- Bootstrap清除/清理浮动
- log4j2 配置详解及使用范例
- android让图片旋转动画,利用RotateAnimation旋转图片的问题 - 移动平台 / Android
- 21-7-28 git学习复习
- Java 生成数字证书系列(三)生成数字证书
- XMU 1613 刘备闯三国之三顾茅庐(一) 【并查集】
- 台式机和计算机有什么区别,笔记本电脑和台式电脑有什么区别
- javaScript打气球小游戏
- 微信数据存储WCDB for iOS/macOS
- 【赛鱼电竞】用王者荣耀免费改名卡改名和王者荣耀怎么修改昵称及王者荣耀改名卡免费修改昵称方法教程
- 【uniapp】微信小程序微信授权新旧解决方案
- 解决Windows 10不显示打字框
- HTML相对路径的写法
- Windows系统增强优化工具
热门文章
- 【5G】5GC网元服务及对应消息
- 修复dhcp client服务器,无法开启DHCP Client服务解决方法
- Codeforces Round #660 (Div. 2) B. Captain Flint and a Long Voyage
- Matlab中神经网络工具箱性能指标(R系数、均方误差、误差直方图)图的含义
- Linux history命令
- pdf.js上传有盖章文件盖章不显示
- HTML鼠标悬停图片的动态效果,4种超酷鼠标滑过图片过渡动画特效
- python好找工作吗2017-2017年 Python工程师面试经历分享(七家)
- java设计模式4,不要和陌生人说话
- chrome(谷歌浏览器)固定到任务栏,点击之后出现两个图标