Python100个库分享第22个—xlwings的写入与读取 (办公篇)

news2024/11/24 12:32:27

目录

  • 专栏导读
  • 库的介绍
  • 库的安装
  • 基础用法1:打开并读取 Excel 文件
  • 基础用法2:读取某一行 (注意点:expand(‘right’))
  • 基础用法3:读取某一列 (注意点:expand(‘down’))
  • 基础用法4:在某单元格写入数据
  • 基础用法4:写入多行
  • 基础用法5:写入公式
  • 总结

专栏导读

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

库的介绍

  • xlwings 是一个用于与 Excel 交互的 Python 库。它允许你使用 Python 代码读取、写入和操作 Excel 文件(.xlsx 和 .xls),同时保持 Excel 应用程序的界面可用,这样你可以实时查看和交互。xlwings 的主要优势在于其易用性和强大的功能,它支持 Excel 的大部分功能,如公式、图表、形状、图像等。

库的安装

pip install xlwings -i https://pypi.tuna.tsinghua.edu.cn/simple/

基础用法1:打开并读取 Excel 文件

  • 先准备一个测试Excel数据

在这里插入图片描述

import xlwings as xw
app = xw.App(visible=False, add_book=False)
app.display_alerts = False    # 关闭一些提示信息,可以加快运行速度。 默认为 True。
app.screen_updating = False    # 更新显示工作表的内容。默认为 True。关闭它也可以提升运行速度。
wb = app.books.open("example.xlsx")
sheet = wb.sheets[0] # 或者 sheet = wb.sheets["索引值从0开始"]

data = sheet.range('A1').expand().value
# print(data)

for i in data:
    print(i)

# 关闭
wb.close()

  • 输出

['表头1', '表头2', '表头3', '表头4', '表头5', '表头6', '表头7', '表头8', '表头9', '表头10']
['数据1', '数据2', '数据3', '数据4', '数据5', '数据6', '数据7', '数据8', '数据9', '数据10']
['数据2', '数据3', '数据4', '数据5', '数据6', '数据7', '数据8', '数据9', '数据10', '数据11']
['数据3', '数据4', '数据5', '数据6', '数据7', '数据8', '数据9', '数据10', '数据11', '数据12']
['数据4', '数据5', '数据6', '数据7', '数据8', '数据9', '数据10', '数据11', '数据12', '数据13']
['数据5', '数据6', '数据7', '数据8', '数据9', '数据10', '数据11', '数据12', '数据13', '数据14']
['数据6', '数据7', '数据8', '数据9', '数据10', '数据11', '数据12', '数据13', '数据14', '数据15']
['数据7', '数据8', '数据9', '数据10', '数据11', '数据12', '数据13', '数据14', '数据15', '数据16']
['数据8', '数据9', '数据10', '数据11', '数据12', '数据13', '数据14', '数据15', '数据16', '数据17']
['数据9', '数据10', '数据11', '数据12', '数据13', '数据14', '数据15', '数据16', '数据17', '数据18']
['数据10', '数据11', '数据12', '数据13', '数据14', '数据15', '数据16', '数据17', '数据18', '数据19']

基础用法2:读取某一行 (注意点:expand(‘right’))

import xlwings as xw
app = xw.App(visible=False, add_book=False)
app.display_alerts = False    # 关闭一些提示信息,可以加快运行速度。 默认为 True。
app.screen_updating = False    # 更新显示工作表的内容。默认为 True。关闭它也可以提升运行速度。
wb = app.books.open("example.xlsx")
sheet = wb.sheets[0] # 或者 sheet = wb.sheets["索引值从0开始"]

data = sheet.range('A1').expand().value
# print(data)

# for i in data:
#     print(i)


# 读取第1行
value = sheet.range('A1').expand('right').value
print('第 1 行的数据为:',value)
# 或
value = sheet.range(2,1).expand('right').value
print('第 2 行的数据为:',value)

# 关闭
wb.close()

  • 输出

1 行的数据为: ['表头1', '表头2', '表头3', '表头4', '表头5', '表头6', '表头7', '表头8', '表头9', '表头10']2 行的数据为: ['数据1', '数据2', '数据3', '数据4', '数据5', '数据6', '数据7', '数据8', '数据9', '数据10']

基础用法3:读取某一列 (注意点:expand(‘down’))

import xlwings as xw
app = xw.App(visible=False, add_book=False)
app.display_alerts = False    # 关闭一些提示信息,可以加快运行速度。 默认为 True。
app.screen_updating = False    # 更新显示工作表的内容。默认为 True。关闭它也可以提升运行速度。
wb = app.books.open("example.xlsx")
sheet = wb.sheets[0] # 或者 sheet = wb.sheets["索引值从0开始"]

data = sheet.range('A1').expand().value
# print(data)

# for i in data:
#     print(i)


# 读取第K1列
value = sheet.range('C1').expand('down').value
print('第 3 列的数据为:',value)
# 或
value = sheet.range(1,1).expand('down').value
print('第 1 列的数据为:',value)


# 关闭
wb.close()
  • 输出

3 列的数据为: ['表头3', '数据3', '数据4', '数据5', '数据6', '数据7', '数据8', '数据9', '数据10', '数据11', '数据12']1 列的数据为: ['表头1', '数据1', '数据2', '数据3', '数据4', '数据5', '数据6', '数据7', '数据8', '数据9', '数据10']

基础用法4:在某单元格写入数据

import xlwings as xw
app = xw.App(visible=False, add_book=False)
app.display_alerts = False    # 关闭一些提示信息,可以加快运行速度。 默认为 True。
app.screen_updating = False    # 更新显示工作表的内容。默认为 True。关闭它也可以提升运行速度。

# 创建一个新的 Excel 工作簿
wb = app.books.add()

# 选择第一个工作表
wb.sheets[0].activate()

# 在 A1 单元格写入值
wb.sheets[0].range('A1').value = 'Hello, World!'

# 保存并关闭工作簿
wb.save('hello.xlsx')
# 关闭
wb.close()
  • 输出

在这里插入图片描述

基础用法4:写入多行

在这里插入代码片import xlwings as xw
app = xw.App(visible=False, add_book=False)
app.display_alerts = False    # 关闭一些提示信息,可以加快运行速度。 默认为 True。
app.screen_updating = False    # 更新显示工作表的内容。默认为 True。关闭它也可以提升运行速度。

# 创建一个新的 Excel 工作簿
wb = app.books.add()

# 选择第一个工作表
wb.sheets[0].activate()

datas = [
['姓名', '年龄', '性别'],
['张三', 18, '男'],
['李四', 20, '女'],
['王五', 22, '男'],
['赵六', 24, '男'],
['孙七', 26, '女']

]
# 写入多列
for num,row in enumerate(datas):
    wb.sheets[0].range('A%s'%(num+1)).value = row


# 保存并关闭工作簿
wb.save('hello.xlsx')
# 关闭
wb.close()
  • 输出

在这里插入图片描述

基础用法5:写入公式

import xlwings as xw
app = xw.App(visible=False, add_book=False)
app.display_alerts = False    # 关闭一些提示信息,可以加快运行速度。 默认为 True。
app.screen_updating = False    # 更新显示工作表的内容。默认为 True。关闭它也可以提升运行速度。

# 创建一个新的 Excel 工作簿
wb = app.books.add()

# 选择第一个工作表
sheet = wb.sheets[0]


# 在 A1 单元格写入值
sheet.range('A1').value = 10
sheet.range('A2').value = 20

# 在 A3 单元格使用公式
sheet.range('A3').formula = '= A1 + A2'

# 保存并关闭工作簿
wb.save('hello.xlsx')
# 关闭
wb.close()

  • 输出

在这里插入图片描述

总结

  • 希望对初学者有帮助

  • 致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1605058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

百度文心一言与谷歌Gemini的对比

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 本文从多角度将百度文心一言与谷歌Gemini进行对比。因为不同评测基准的侧重点和难度可能有所不同,所以本文涉及到的评测结果仅供参考。Gemini和文心一言都是非常…

Compose 基础组件

文章目录 Compose 基础组件Modifier 修饰符Scaffold 脚手架 Compose 基础组件 Modifier 修饰符 在传统视图体系中,使用XML文件描述组件的样式,而在Compose中使用Modifier,每个基础的Composable组件都有一个modifier参数,通过Mod…

ObjectMapper解析JSON数据

ObjectMapper的作用 1.背景: 当我们调用API的时候捕获的数据,往往需要结合文档所定义的类进行转换,也就是Java对象与JSON 字符串之间的转换 2.作用: ObjectMapper 是 Jackson 库中的一个关键类,它的作用是将 JSON 数据…

时序分解 | Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解

时序分解 | Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解 目录 时序分解 | Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现WOA-VMD鲸鱼算法WOA优化VMD变分模态分解(完整源码和数据) 1.利用鲸…

WT3000T8-TTS语音合成芯片及应用场景介绍

一、TTS语音合成芯片简述 TTS语音合成芯片是一种能够将文本信息转化为自然语音的专用芯片。它通过内置的语音合成算法和音频处理单元,实现了文本到语音的高效转换,为各种智能设备提供了丰富的语音交互功能。 二、TTS语音合成开发背景 TTS(文字…

Linux sudo suid提权练习

题目比较简单,可以利用sudo和多种suid程序提权,做个记录 进入靶场题目环境 获得节点信息 远程连接上 执行命令id,发现只是admin普通账户 sudo提权 发现存在 /usr/bin/vim, /usr/bin/bash, /usr/bin/more, /usr/bin/less, /usr/bin/nano, /…

C——文件操作

1.前言 为什么要使用文件呢? 文件是储存在电脑的磁盘中的,如果没有文件,我们写程序的数据就会存储在电脑的内存中,程序退出,操作系统就会收回内存,数据就丢失了等再次运行程序的时候,是看不到…

财务管理驾驶舱就该按这个模板做!

今天我们来看一张财务管理驾驶舱,体验一下BI数据可视化分析报表的灵活自助分析效果! 众所周知,驾驶舱报表的作用就是让企业运营管理者更清晰地了解、分析数据,发现数据中隐藏的问题或机会,从而针对性制定运营管理决策。…

创新与乐趣的融合 —— 探索我们独家录音变音芯片在学舌玩具领域的应用

一:概述 学舌玩具,又称作复读玩具或模仿玩具,是一类设计用来录制人声并重复播放的互动式玩具。这类玩具以其能够模仿人类语音的特性而受到小朋友和宠物主人的喜爱。这些玩具通常具有以下特点和功能: 1. 录音和播放功能&#xff…

GEE错误——Can‘t encode object: function()

错误 Image (Error) Cant encode object: function(){var d=Da.apply(0,arguments).map(function(f){return c.zp(f)}),e=a.hasOwnProperty("prototype")?c.zp(this):void 0;d=m5a(c,a,d,e);return c.qj(d)} Imagen Ms Reciente sin Pxeles 2720: Layer error: Ca…

如何搭建高效安全的eBay测评环境:步骤与要点解析

eBay测评环境的搭建是一个复杂且需要细致考虑的过程,主要涉及到技术配置和资源准备。以下是一些关键的步骤和要点: 一、资源准备: 1.养号系统及软件:选择稳定、可靠的养号系统,确保能够模拟真实用户行为,…

Java面试:MySQL面试题汇总

1.说一下 MySQL 执行一条查询语句的内部执行过程? 答:MySQL 执行一条查询的流程如下: 客户端先通过连接器连接到 MySQL 服务器;连接器权限验证通过之后,先查询是否有查询缓存,如果有缓存(之前…

什么是云渲染?云渲染平台怎么使用?云渲染怎么收费?

什么是云渲染? 云渲染是一种利用云计算技术提供的云端服务,用户可以将本地任务递交到远程服务器上,由远程计算集群协调和完成渲染,并将结果返回本地,最后用户可以在本地下载渲染结果。 而实时云渲染则是云渲染的一种…

Git 时光穿梭

文章目录 一、问题引入二、前置知识三、工作区暂存区和版本库四、版本回退1、版本回退命令2、四大常见场景3、删除文件 总结 一、问题引入 假设这样一个场景:有一天你的老板让你整理一份报告,结果你很轻松的整理完了第一版,但是你的老板并不…

大话设计模式之享元模式

享元模式是一种结构型设计模式,旨在有效地支持大量细粒度的对象共享,从而减少内存消耗和提高性能。 在享元模式中,对象分为两种:内部状态(Intrinsic State)和外部状态(Extrinsic State&#xf…

容联云QCon全球软件大会分享:大模型引领“营销服”创新实践

近日,QCon 全球软件开发大会正式召开。容联云大模型产品负责人唐兴才受邀出席,并分享营销服场景中,大模型的创新应用与实践。 唐兴才指出,在大模型浪潮的推动下,营销服场景正经历着前所未有的变革。面对激烈的市场竞争…

node.js-入门

定义 Node.js是一个跨平台Javascript运行环境,使开发者可以搭建服务器端的Javascript应用程序 作用:使用Node.js编写服务器端程序 1)编写数据接口,提供网页资源浏览功能等 2)前端工程化:集成各种开发中…

北斗卫星系统在海上测量中的创新应用

北斗卫星系统在海上测量中的创新应用 随着全球导航卫星系统技术的飞速发展,北斗卫星系统作为中国自主研发的全球卫星导航系统,在海上测量和导航领域展现出了无可比拟的优势和广阔的应用前景。 一、北斗卫星系统概述 北斗卫星系统是由中国自主研发的全球…

【Numpy】对于 Numpy 中 Axis 的理解

文章目录 前言理解轴的两个角度在维度变化方向上计算降维 示例剖析写在最后 前言 Numpy 是 Python 中一个常用科学计算库,常用来表示向量、矩阵以及多维度数组。在 Numpy 中多对某一个维度(轴)进行相应的操作,这一点经常出错。今…

K8S一 k8s基础知识及实战

一 K8S 概览 1.1 K8S 是什么? K8S官网文档:https://kubernetes.io/zh/docs/home/ K8S 是Kubernetes的全称,源于希腊语,意为“舵手”或“飞行员”,官方称其是:用于自动部署、扩展和管理“容器化&#xff08…