python 对excel交互工具的使用详情
作者:lianghaibos 发布时间:2021-11-25 19:10:06
标签:python,excel,交互,工具,使用
python 对excel的 读入 与 改写
(对比xlwt、openpyxl、xlrd)
xlwt不支持写xlsx文件。
openpyxl不支持读xls文件。
计划任务xlrd支持读xls,xlsx文件。
计划任务推荐读文件用xlrd,写文件用openpyxl。
#一、xlrd 读
# 1.引入库& 下载库 xlrd
pip install xlrd # 下载
pip show xlrd # 显示版本
pip install xlrd==1.2.0 # 下载指定版本
import xlrd# 导入
workBook = xlrd.open_workbook('D:\project\info.xls', 'rb') # 打开文件
workBook = xlrd.open_workbook(r'D:\project\info.xls')
allSheetNames = workBook.sheet_names() # 获取所有sheet的名字(list类型)
SheetName1= workBook.sheet_names()[0]# 按索引号
print(allSheetNames, SheetName1)
#输出:
['Sheet1', 'Sheet2', 'Sheet3'] Sheet1
# 获取sheet内容
sheet1_content1 = workBook.sheet_by_index(0) # sheet索引从0开始
sheet1_content2 = workBook.sheet_by_name('sheet1') # 按sheet名字获取
# 获取整行和整列的值(数组)
print(sheet1_content1.name,sheet1_content1.nrows,sheet1_content1.ncols)
# 获取整行和整列的值(数组)
rows = sheet1_content1.row_values(3) # 获取第四行内容
cols = sheet1_content1.col_values(2) # 获取第三列内容
print(rows)
print(cols )
# 获取单元格内容(三种方式)
print(sheet1_content1.cell(1, 0).value)
print(sheet1_content1.cell_value(2, 2))
print(sheet1_content1.row(2)[2].value)
二、python 写入数据
1 、 xlwt包写入Excel文件
xlwt 写库的局限性: 只能写入新建的 excel。
(写入打开文档 可用xlutils.copy的 copy 复制一份)
xlwt中生成的xls文件最多能支持65536行数据
创建表写入数据
# 向execl中 批量写入虚假数据
import xlwt,faker,random
wb=xlwt.Workbook()
sheet002=wb.add_sheet("002")
head=["姓名","年龄","性别"]
for h in head:
sheet002.write(0,head.index(h),h)
#利用for 循环 挨个写入 数据 行,列,数据值 这里列使用下标即可
fake=faker.Faker()
for i in range(1,101):
sheet002.write(i, 0, fake.name())
sheet002.write(i, 1, random.randint(10,60))
sheet002.write(i, 2, random.choice(['男','女']))
wb.save("002.xls")
#2 复制表写入数据
import xlwt
import xlrd
import xlutils.copy
rd = xlrd.open_workbook("Hello.xls", formatting_info = True) # 打开文件
wt = xlutils.copy.copy(rd) # 复制
sheets = wt.get_sheet(0) # 读取第一个工作表
sheets.write(m, n, "I love you!") # 向 m-1 行 n-1 列的单元格写入内容
wt.save("Hi.xls") # 保存
2、openpyx 只可以读xlsx 不可读xls文档
xl = openpyxl.load_workbook('D:\project\infoexcel.xlsx', data_only=True)
# 设置工作表
sheet1 = xl.worksheets[0]
for i in range(1, 24):
sheet1.cell(i, 3).value = cvalue
# 保存表格
xl.save('D:\project\infoexcel.xlsx')
三、小结
python 提供excel交互的工具包很多,
一、 找到适合自己
二、 区分不同包的权限与功能
如:(xlrd 新版本不支持xlsx ,需要回滚老版本才可使用)
三、出现问题debug运行寻找问题点,合理尽快解决问题!
来源:https://blog.csdn.net/qq_40761920/article/details/125819263
0
投稿
猜你喜欢
- 1.__new__(cls, *args, **kwargs) 创建对象时调用,返回当前对象的一个实例;注意:这里的第一个参数是
- variables_to_restore函数,是TensorFlow为滑动平均值提供。之前,也介绍过通过使用滑动平均值可以让神经网络模型更加
- 一、UDP编程1.客户端Client:发起访问的一方。2.服务器端3.server段编程(1)建立socket,socket是负责具体通信的
- 当创建一个Models, 在同步到数据库里,django默认设置了三个权限 ,就是 add, change, delete权限。但是往往有时
- 1.在浏览器下载与浏览器相对于的驱动并放到python的安装根目录下驱动的两个下载地址:http://chromedriver.storag
- 概括、从python1.6开始就可以处理unicode字符了。 一、几种常见的编码格式。 1.1、ascii,用1个字节表示。 1.2、UT
- SvnPeer.php <?php /** * * This class for execute the external progr
- phpMyAdmin错误 缺少 mysqli 扩展。请检查 PHP 配置 的解决方案phpMyAdmin 缺少 mysqli 扩展。请检查
- 国外的空间和我们国内的空间使用的语言系统一般不一样,所以在网页程序上时如果处理不当很容易出现乱码,看了让人摸不着头脑。所以我们在编写程序时就
- 在我之前解释了flask如何支持多线程主要通过两个类来实现,LocalStack和Local,在Local中有两个属性,__storage_
- 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。
- 最近,带领我的学生进行一个URTP项目设计,需要进行人脸识别。由于现在的OpenCV已经到了2.X版本,因此就不想用原来的1.X版本的代码,
- python 生成 exe 文件的方法:首先安装 pyinstaller,代码为【pip install pyinstaller】;然后使用
- 最近在学一些基础的算法,发现我的数学功底太差劲了,特别是大学的这一部分,概率论、线性代数、高数等等,这些大学学的我是忘得一干二净(我当时学的
- 要用django的orm表达sql的exists子查询,是个比较麻烦的事情,需要做两部来完成from django.db.models im
- 一、安装依赖包pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ py
- 本文实例讲述了Python实现对字符串的加密解密方法。分享给大家供大家参考,具体如下:需求是是要将密码存在数据库里,所以要加密解密是可逆的,
- hello,大家好,我是Dream。最近有小伙伴私信我,说让我出一篇海龟画图,这其实我也不太能弄得明白,那在这里我和大家一块梳理一下!记得给
- PS: 我的检索是在文章模块下 forum/article第一步:先安装需要的包:pip install django-haystackpi
- 1、首先,界面上有个按钮触发操作:<button type="button" class="layui-