Python读写Excel表格的方法
作者:水军总督 发布时间:2022-11-10 20:43:18
标签:python,Excel
本文实例为大家分享了Python读写Excel表格的具体代码,供大家参考,具体内容如下
python读取Excel表格:
import xlrd
def read_excel():
# 打开文件
wb = xlrd.open_workbook(r'test.xls')
# 获取所有sheet的名字
print(wb.sheet_names())
# 获取第二个sheet的表名
sheet2 = wb.sheet_names()[1]
print("sheet2 = {}".format(sheet2))
# sheet1索引从0开始,得到sheet1表的句柄
sheet1 = wb.sheet_by_index(0)
rowNum = sheet1.nrows
colNum = sheet1.ncols
print("rowNum = {}, colNum = {}".format(rowNum, colNum))
# 获取某一个位置的数据
c1_0 = sheet1.cell(1, 0).value
print("c1_0 = {}".format(c1_0))
# 1 ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
print(sheet1.cell(1, 2).ctype)
# 获取整行和整列的数据
# 第二行数据
row2 = sheet1.row_values(1)
print("row2 = {}".format(row2))
# 第二列数据
cols2 = sheet1.col_values(2)
print("cols2 = {}".format(cols2))
# python读取excel中单元格内容为日期的方式
# 返回类型有5种
print("for循环:")
for i in range(rowNum):
# if sheet1.cell(i, 2).ctype == 1:
# d = xlrd.xldate_as_tuple(sheet1.cell_value(i, 2), wb.datemode)
# print(date(*d[:3]), end='')
print(sheet1.cell(i, 2))
# 输出如下:
# ['我的第一个表', '第二个', '呵呵第三个']
# sheet2 = 第二个
# rowNum = 8, colNum = 3
# c1_0 = w
# 2
# row2 = ['w', 's', 10.0]
# cols2 = ['z', 10.0, 666.0, '2021年2月25日 02:06:25', 44252.0, 'x', 1, '']
# for循环:
# text:'z'
# number:10.0
# number:666.0
# text:'2021年2月25日 02:06:25'
# xldate:44252.0
# text:'x'
# bool:1
# empty:''
python写入Excel表格:
import xlwt
# 写入数据
def write_excel():
f = xlwt.Workbook()
# 创建表sheet1
sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True)
# 如果是写入中文,则要用u'汉字'的形式。比如 sheet1.write(0,0, u'汉字')
row0 = [u'业务', u'状态', u'北京', u'上海', u'广州', u'深圳', u'状态小计', u'合计']
column0 = [u'机票', u'船票', u'火车票', u'汽车票', u'其他']
status = [u'预定', u'出票', u'退票', u'业务小计']
for i in range(0, len(row0)):
sheet1.write(0, i, row0[i], set_style("Time New Roman", 220, True))
# 合并单元格:
# sheet1.write_merge(x, x + m, y, y + n, string, style)
# x表示行,y表示列,m表示跨行个数,n表示跨列个数,string表示要写入的单元格内容,style表示单元格样式。
i, j = 1, 0
while i < 4 * len(column0): # 控制循环:每次加4
# 第一列
sheet1.write_merge(i, i + 3, 0, 0, column0[j], set_style('Arial', 220, True))
# 最后一列
sheet1.write_merge(i, i + 3, 7, 7)
i += 4
j += 1
sheet1.write_merge(21, 21, 0, 1, u'合计', set_style("Time New Roman", 220, True))
i = 0
while i < 4 * len(column0): # 控制外层循环:每次加4
for j in range(0, len(status)): # 控制内层循环:设置每一行内容
sheet1.write(i + j + 1, 1, status[j])
i += 4
# 创建sheet2
sheet2 = f.add_sheet(u'sheet2',cell_overwrite_ok=True)
row0 = [u'姓名', u'年龄', u'出生日期', u'爱好', u'关系']
column0 = [u'UZI', u'Faker', u'大司马', u'PDD', u'冯提莫']
# 生成第一行
for i in range(0, len(row0)):
sheet2.write(0, i, row0[i], set_style('Times New Roman', 220, True))
# 生成第一列
for i in range(0, len(column0)):
sheet2.write(i + 1, 0, column0[i], set_style('Times New Roman', 220, True))
f.save('data.xls')
执行上面这个写入excel表格的函数后,会生成data.xls文件。
写入表格1:
写入表格2:
来源:https://blog.csdn.net/kaida1234/article/details/114178347


猜你喜欢
- 如下所示:import sysfrom PyQt5.QtWidgets import QMainWindow, QTextEdit, QAc
- 浏览器对于CSS的支持问题落后于CSS的发展,以占有市场绝对份额的Internet Explorer来说,直到其前不久发布的第8个版本才刚刚
- JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。而cookie是运行在
- 引言很多人可能没有注意过,在 Go(甚至是大部分语言)中,一条普通的赋值语句其实不是一个原子操作。例如,在32位机器上写int64类型的变量
- 我用的是mac mini然后在上边装好了sublime text2 插件依然是go sublime和go build这两个就不介绍了,因为之
- 效果如图 一、获取天气def getWeather1(city): try:
- 一.图像几何变换图像几何变换不改变图像的像素值,在图像平面上进行像素变换。适当的几何变换可以最大程度地消除由于成像角度、透视关系乃至镜头自身
- 网站中很多表单都会用到上传图片,logo,照片,用户也会上传图片,这个时候网站就需要一个上传图片的功能,而且在上传后希望能预览一下看上传的对
- # 简单的端口扫描工具# 作者: Charles# 公众号: Charles的皮卡丘import timeimport socketimpo
- 今天花了一些时间搭了一个博客系统,虽然并没有相关于界面的美化,但是发布是没问题的。开发环境操作系统:windows 7 64位 Django
- 需求描述制作一个H5页面,打开之后可以录音,并将录音文件提交至后台微信录音最长时长为1min微信官方文档--音频接口代码如下 /
- 1.QLineEditQLineEdit.text()#输出str类型2.QCheckBoxQCheckBox.checkState()#状
- 描述Python time time()返回当前时间的时间戳(1970 * 后经过的浮点秒数)。突然想看时间了,打开cmd发现脑中空荡,Jav
- 功能描述目标完成多账号微信小程序每天自动签到输出签到成功则向微信群发送签到成功的信息否则提示用户签到失败,需手动签到包管理requestsi
- 前言利用JS实现对form表单登录提交的验证在大多数web中都会使用到。首先,我们要使用JavaScript的一个库:jQuery,jQue
- 最近在研究深度学习视觉相关的东西,经常需要写python代码搭建深度学习模型。比如写CNN模型相关代码时,我们需要借助python图像库来读
- PHP crypt() 函数定义和用法crypt() 函数返回使用 DES、Blowfish 或 MD5 算法加密的字符串。在不同的操作系统
- 今天给一个客户巡检的情况下发从库没有业务的情况mysqld的cpu的一个core占用100%.查主库慢查询也没有关于写的SQL.可以说是典的
- 看下面的一组例子:alert(true.toString());alert(false.toString());alert(1.123.to
- 1. 引入mybatis-plus相关包,pom.xml文件2. 配置文件application.property增加多库配置mysql 数