python xlwt xlrd操作Excel

本文介绍了使用Python的xlrd、xlwt和xlutils库进行Excel文件的读取、写入以及格式设置。通过示例代码展示了如何读取Excel的表格数据,如何写入数据到新的Excel文件,并且演示了如何修改已存在文件的内容,以及如何设置单元格样式和超链接。最后,文章提到了在处理文件格式和样式时遇到的问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        Python操作Excel可以使用xlwt,xlrd。

        安装:pip3 install xlwt==1.2.0        pip3 install xlrd==1.2.0    等号后边表示版本

        先看看测试所使用的Excel的内容以及分页

       如上图,三个sheet。好了,废话少说,翠花,上酸菜。

        一、读取Excel数据

# -*- coding: utf-8 -*-

import xlrd

# 打开
#data = xlrd.open_workbook('./主线纪念活动数据表.xlsx')
# 报错 xlrd.biffh.XLRDError: Excel xlsx file; not supported
# 解决:安装老版本  pip3 install xlrd==1.2.0
data = xlrd.open_workbook('./主线纪念活动数据表.xlsx')

# 获取sheets,返回sheet的list
print('sheets: ', str(data.sheet_names()))

# 获取其中一张sheet
sheet_data = data.sheet_by_name(data.sheet_names()[0])
print('sheet_data:', sheet_data)
sheet_data1 = data.sheet_by_index(0)
print('sheet_data1:', sheet_data1)

# sheet的行数与列数
print('sheet_info:', sheet_data.nrows, sheet_data.ncols)

# sheet行打印,列打印
print('sheet_row_value:', sheet_data.row_values(0))
print('sheet_col_value:', sheet_data.col_values(0))

# sheet中单元格的值
print('space_value:', sheet_data.cell(1, 3).value)

# 遍历
for row in range(0, sheet_data.nrows) :
	print('values:', sheet_data.row_values(row))

结果输出:

C:\Users\zhanglu11\Desktop>py -3 excel.py
sheets:  ['结构-数据', '阵容-数据', '副本-数据']
sheet_data: <xlrd.sheet.Sheet object at 0x0000025671C57100>
sheet_data1: <xlrd.sheet.Sheet object at 0x0000025671C57100>
sheet_info: 2 7
sheet_row_value: ['是否屏蔽', '编号', 'up阵容编号', '副本-材料编号', '副本-挑战编号', '挑战开启日期', '活动界面编号']
sheet_col_value: ['是否屏蔽', 0.0]
space_value: 1,2,3
values: ['是否屏蔽', '编号', 'up阵容编号', '副本-材料编号', '副本-挑战编号', '挑战开启日期', '活动界面编号']
values: [0.0, 1.0, 1.0, '1,2,3', 1.0, '2020,10,4,7,0,0', 247.0]

        二、写入Excel数据

# 写入
import xlwt
import xlrd
data = xlwt.Workbook(encoding='gbk')
sheet = data.add_sheet('test') # 新建sheet
sheet.write(0, 0, '0,0') # 0行0列写入 '0,0'
sheet.write(0, 1, '0,1') # 0行1列写入 '0,1'
data.save('xxx.xlsx')

代码执行完毕,创建出来了xxx.xlsx的文件,但是文件打不开,打开时候报错:

好家伙,这是个什么玩意儿???

解决方案,修改文件后缀名,将data.save('xxx.xlsx') 修改为 data.save('xxx.xls') 就可以打开了。

       三、可以读,可以写,但是怎么读写同一个文件呢?这时候使用xlutils.copy库,然后save文件的时候,替换要写入文件名字。

# 打开并且写入
import xlrd
from xlutils.copy import copy
data = xlrd.open_workbook('./xxx2.xls')
new_data = copy(data)
sheet = new_data.get_sheet(0)
sheet.write(0, 7, 'test2')
new_data.save('xxx2.xls')

执行结果一切正常,打开Excel:

        四、好激动啊,如此简单吗?来来来,鸡蛋里挑挑骨头,挑哪呢,嗯,它不好看!!!

# 不好看
import xlwt
import xlrd
from xlutils.copy import copy
data = xlrd.open_workbook('./xxx2.xls')
new_data = copy(data)
sheet = new_data.get_sheet(0)

# 设置显示颜色等
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = 5
style = xlwt.XFStyle()
style.pattern = pattern
sheet.write(0, 7, 'test2', style)

sheet.col(0).width = 256*20 # 256为宽度单位 20表示20个字符
sheet.write(3, 0, xlwt.Formula('HYPERLINK("https://blog.youkuaiyun.com/zhanglu_1024?spm=1001.2101.3001.5343";"最精彩的博客在哪里")'))
new_data.save('xxx2.xls')

结果如图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值