Python xlwings模块

news2025/1/11 8:45:25

一 xlwings安装与功能介绍

     使用特定模块前,需要在程序最前面进行模块导入,和JAVA导入依赖包一样。

             import 模块名

     也可以加上from语句导入特定的子模块(主要是防止某些模块太大影响加载速度)

             from 模块名 import 函数名(也可以用*代表所有)

  1.1 os模块

   os模块包含了与操作系统相关的一些功能,加上海量的辅助功能包,可以实现非常强大的功能。

             getcwd():获取当前运行pytho代码文件的路径

import os
path = os.getcwd()
print(path)

  以上程序会输出vscode定义的path工程文件的存储路径。

             listdir():获取某个文件夹所有文件和子文件夹的名称

import os
path = 'd:\\python'
list = os.listdir(path)
print(list)

  1.2 excel相关的模块

在处理Excel的时候需要对操作系统的文件进行操作,所以通常需要引入OS模块。

下图列举了与Excel高度相关的一些模块,后面用的比较多的是xlwings,其他模块可能会少量使用。

  二 xlwings功能介绍

  2.1 操作工作簿

  • 创建新的工作簿 
    import xlwings as xw  # 引入xlwings
    app = xw.App(visible=True,add_book=False) # 声明app
    workbook = app.books.add() # 新增workbook
    workbook.save(r'd:\pytest\test.xlsx') # 存储到本地路径
    app.quit() # 退出APP
  •  打开已经存在的工作簿
import xlwings as xw  # 引入xlwings
app = xw.App(visible=True,add_book=False) # 声明app
try:
    workbook = app.books.open(r'd:\pytest\test1.xlsx')
except FileNotFoundError:
    print('不存在的文件!')
  

2.2 操作工作表和单元格

import xlwings as xw  # 引入xlwings
app = xw.App(visible=True,add_book=False) # 声明app
try:
    workbook = app.books.open(r'd:\pytest\test.xlsx')
except FileNotFoundError:
    print('不存在的文件!')
worksheet = workbook.sheets.add('产品统计表')
worksheet.range('A1').value = '编号'
workbook.save()
workbook.close()
app.quit()

 三  Numpy

  NumPy(Numberical Python),是一个高效的、强大的数学计算模块,用于数学分析与数学计算。

  通常在做Excel大数据分析时需要用到Numpy与Pandas相结合。

  3.1 数组

   和JAVA程序一样,数组分为一维数组和多位数组,一维数组与列表有相似之处。

import numpy as np
a = [1,2,3,4]
b = np.array([1,2,3,4])
print(a)
print(b)
print(type(a))
print(type(b))

  

  np.arange(para1)  #只有一个参数:起点默认为0,para1为终点,步长为1,左闭右开

  np.arange(para1,para2) #两个参数:起点para1,终点para2,步长为1,左闭右开

  np.arange(para1,para2,para3) #三个参数:起点para1,终点para2,步长para3,左闭右开

import numpy as np
x = np.arange(5)
print(x)
y = np.arange(5,10)
print(y)
z = np.arange(5,10,2)
print(z)

  得到输出如下   

  

  random()函数: 创建随机一维数组。

import numpy as np
x = np.random.randn(3) #服从正态分布 均值0,标注差为1
print(x)

  

  reshape():  创建二维数组

import numpy as np
y = np.arange(12).reshape(3,4)
print(y)

randint() 创建随机整数二维数组

import numpy as np
e = np.random.randint(0,10,(4,4))
print(e)

四 pandas-数据分析与清洗

 pandas模块是基于NumPy的一个开源Python模块,应用于数据分析,数据清洗和数据准备等工作。pandas提供了非常直观的数据结构以及强大的数据处理功能,基本上Excel能够做到的,都可以通过pandas实现。

pandas包含Series和DataFrame两种数据结构。

4.1 Series

 类似于通过NumPy模块创建的一维数据,不同的是Series对象不仅包含数值,还包含一组索引。

import pandas as pd
s = pd.Series(['丁一','王二','张三'])
print(s)

  4.2 DataFrame

     DataFrame是一个二维数据表格结构。   

  3.5.1  二维数据表格DataFrame的创建与索引的修改

  •  DataFrame创建

   DataFrame()函数:基于列表创建DataFrame
  

import pandas as pd
a = pd.DataFrame([[1,2],[3,4],[5,6]])
print(a)

  • 自定义行与列索引
import pandas as pd
a = pd.DataFrame([[1,2],[3,4],[5,6]],columns=['date','score'],index=['A','B','C'])
print(a)

  另外一种定义方法

import pandas as pd
a = pd.DataFrame()
date = [1,3,5]
score = [2,4,6]
a['date'] = date
a['score'] = score
print(a)
  • 通过字段创建DataFrame

    通过字段创建DataFrame会默认以键名作为列索引

import pandas as pd
b = pd.DataFrame({'a':[1,3,5],'b':[2,4,6]},index=['X','Y','Z'])
print(b)

 

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

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

相关文章

终极 Microsoft 365 管理工具——M365 Manager Plus

由于疫情原因,我们的工作方式也发生了很大的改变,相比以往的办公方式,未来线上远程办公将成为一种全新的方式。但目前对于很多企业来说,施行线上办公模式还面临着很多困难。Microsoft 365是企业最普遍选择的基于云的工作组件&…

文件上传漏洞之upload-labs靶场实战通关

目录 pass-01 pass-02 pass-03 pass-04 pass-06 pass-07 pass-08 pass-09 pass-10 pass-11 pass-12 pass-13 pass-14 pass-15 pass-16 pass-17 pass-18 pass-19 pass-20 pass-21 pass-01 pass-02 前端删除完验证函数后通过burp修改 content-type的类型 pa…

web前端 html+css+javascript 绿色的随行旅游网页设计实例 企业网站制作

👨‍🎓学生HTML静态网页基础水平制作👩‍🎓,页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容…

Span抽取和元学习能碰撞出怎样的新火花,小样本实体识别来告诉你!

近日,阿里云机器学习平台PAI与华东师范大学高明教授团队、达摩院机器智能技术NLP团队合作在自然语言处理顶级会议EMNLP2022上发表基于Span和元学习的小样本实体识别算法SpanProto。这是一种面向命名实体识别的小样本学习算法,采用两阶段的训练方法&#…

Java StringBuilder

JavaStringBuilder\huge{Java \space StringBuilder}Java StringBuilder 概述 StringBuilderStringBuilderStringBuilder类是一种特殊的可变字符串的操作类,可以把它看做成一种特殊的对象容器。(简单讲的话就是一种特殊的字符串类型) 为什么要使用它? …

1、Spring简介与基于XML的IoC装配

一、Sping简介 1、概述 1、Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。 2、Spring是一个面向对象设计层面的开发框架(基本上都是运行在后台)&#x…

从入门到进阶,KingbaseES数据库学习资料整理(持续归档中...)

一、安装和卸载 1.安装包 2.安装&卸载 3.安装、移除组件 4.license 5.安装问题 二、系统管理 1.初始化 2.数据库 3.快速开发管理工具 三、应用开发 1.sql 2.plsql 3.扩展和插件 4.接口 四、迁移 1.初始化和配置 2.迁移数据 3.迁移对象 4.迁移的异常处…

Linux网络原理与编程(2)——第十二节 应用层协议(以HTTP为例)

目录 协议 HTTP协议 认识URL HTTP协议的特征 HTTP的构成及报文格式 报文格式 请求方法 常见的Header 状态码 Cookie 我们从本节开始,就来正式地详细介绍网络各个层次的内容。 我们先从最顶端的应用层协议说起。 在说应用层协议之前,我们来思考…

Day42——Dp专题

文章目录五、多重背包六、背包问题总结动规五部曲背包递推公式遍历顺序18.打家劫舍19.打家劫舍II20.打家劫舍 III(dfs缓存/树形DP)五、多重背包 对于多重背包,我在力扣上还没发现对应的题目,所以这里就做一下简单介绍&#xff0c…

【SpringMVC】上篇,超详细的教程带你学会SpringMVC

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:【Spring】 🥭本文内…

java面向对象----抽象类

目录 抽象类与抽象方法 概念 抽象类应用 接 口 概念 接口的特点: 接口应用举例 Java 8中关于接口的改进 内部类 如何声明局部内部类 局部内部类的特点 匿名内部类 总结 抽象类与抽象方法 概念 随着继承层次中一个个新子类的定义,类变得越…

android OTA update

可以使用系統的API來實現系統更新。分兩種更新,non-streaming 和 streaming。non-streaming就是把更新包下載好,放到本地,然後執行更新。而streaming是爲了你的設備內存不夠,不能把更新包下載下來,使用的,u…

Helm 部署 java 项目到 K8S

文章目录部署流程模板目录文件解析DeploymentServiceIngress_helpers.tplChart.yamlvalues.yaml部署命令部署流程 准备 jar 包使用 Dockerfile 构建镜像上传镜像到仓库(Harbor)使用 Helm 模板部署 jar 到 K8S 本文着重讲解第四步,如何制作 …

后分库分表时代的数据库新选择:二维火搭载OceanBase再出发

如今,在中国任意走进一家餐饮商户,不论其规模大小,扫码点餐、自助点餐机、商家点餐小程序等已经基本成为标配。随着餐饮行业数智化持续加速推进,餐饮 SaaS 已经逐渐成为商户们的“必选题”,二维火便是这“必选题”之一…

深度解析 Git 是如何工作的?

深度解析 Git 是如何工作的?前言Git 的特性Git 实际上是如何工作的Commits 对象Tree 对象Blobs 对象总结分支创建与合并代码合并与冲突代码合并算法(Myers)图搜索代码 diff结尾参考:《Pro Git》、《Advanced Git》 前言 Git 是一…

如何实现工具无关化?关于自动化测试脚本的设计

1.问题的提出 最近几年来,我的自动化测试工具之旅大致是这样的,最早用的是QTP,然后是RFT(IBM的功能测试自动化产品),之后也经历了Selenium, Watir等,再后还是一些商业工具主要是偏web自动化及移动自动化,如sahi, appnium, Keynot…

你知道ArcGIS电子地图也有大字体地图吗(附下载方法)

概述 如果你经常使用水经微图,应该知道在水经微图内,百度电子地图和高德电子地图有大字体地图,最近我偶然发现ArcGIS电子地图也有大字体地图,这里给大家介绍一下下载方法。 加载地图 在ArcGIS中打开目录窗格,点击添…

五、卷积神经网络CNN8(不同卷积后图像大小计算)

类型划分 2 维卷积的计算分为了 3 类:1.full 2.same 3. valid 1、full蓝色为原图像,白色为对应卷积所增加的 padding,通常全部为 0,绿色是卷积后图片。图中的卷积的滑动是从卷积核右下角与图片左上角重叠开始进行卷积&#xff…

为什么企业需要实时跟踪进度的项目管理工具?

市场上的大多数 项目管理工具,都是垃圾进-垃圾出,这意味着如果你的团队没有输入正确甚至漏了输入他们活动的状态信息,就无法准确跟踪项目进展。 当选择了一个不能跟踪实时进度状态的项目管理工具,它不能给你提供准确报告进度所需…

大型复杂项目管理之风险预防

最近一个项目让项目经理小王焦头烂额,一问才知是第一次主导大型项目,各个维度的风险问题频发不断,项目感觉推动不下去了。例如,子项目进度延误、项目资源不足、项目交付物质量不过关等因素造成项目的整体延误等等。 项目案例信息&…