Python 创建或读取 Excel 文件

Excel是一种常用的电子表格软件,广泛应用于金融、商业和教育等领域。它提供了强大的数据处理和分析功能,可进行各种计算和公式运算,并能创建各种类型的图表和可视化数据。Excel的灵活性使其成为处理和管理数据的重要工具。本文将介绍如何使用 Spire.XLS for Python 通过代码创建Excel文件,以及读取Excel数据

目录

安装 Spire.XLS for Python 组件

用 Python 创建 Excel 文件

用 Python 读取 Excel 数据


安装 Spire.XLS for Python 组件

Spire.XLS for Python是一款第三方 Python Excel组件,可用于在各种 Python 平台创建、管理、操作及转换 Excel 文档。要安装此产品,使用以下 pip 命令:

pip install Spire.XLS-for-Python
pip install plum-dispatch==1.7.4

详细安装教程可参考: 如何在 VS Code中安装 Spire.XLS for Python

用 Python 创建 Excel 文件

Spire.XLS for Python 提供了各种各样的类、属性和方法可供开发人员对工作簿、工作表、某个单元格范围甚至指定的单元格进行操作。要创建一个Excel文件,并写入具体数据,可参考以下Python代码。

from spire.xls import *
from spire.common import *# 创建 Workbook 对象
wb = Workbook()# 删除默认工作表
wb.Worksheets.Clear()# 添加一个工作表并命名
sheet = wb.Worksheets.Add("销售表")# 合并 A1:G1 单元格
sheet.Range["A1:G1"].Merge()# 在 A1 中写入数据并设置其单元格样式
sheet.Range["A1"].Text = "销售明细表"
sheet.Range["A1"].HorizontalAlignment = HorizontalAlignType.Center
sheet.Range["A1"].VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1"].Style.Font.IsBold = True
sheet.Range["A1"].Style.Font.Size = 13# 设置第一行的行高
sheet.Rows[0].RowHeight = 30# 将文本和数字写入指定的单元格
sheet.Range["A2"].Text = "订单编号"
sheet.Range["B2"].Text = "下单日期"
sheet.Range["C2"].Text = "客户名称"
sheet.Range["D2"].Text = "产品名称"
sheet.Range["E2"].Text = "订单金额"
sheet.Range["F2"].Text = "交货日期"
sheet.Range["G2"].Text = "订单状态"sheet.Range["A3"].Text = "DXA-001"
sheet.Range["B3"].Text = "2022/12/1"
sheet.Range["C3"].Text = "客户1"
sheet.Range["D3"].Text = "产品1"
sheet.Range["E3"].Text = "5000"
sheet.Range["F3"].Text = "2022/12/12"
sheet.Range["G3"].Text = "已完成"sheet.Range["A4"].Text = "DXA-002"
sheet.Range["B4"].Text = "2022/12/1"
sheet.Range["C4"].Text = "客户2"
sheet.Range["D4"].Text = "产品2"
sheet.Range["E4"].Text = "3000"
sheet.Range["F4"].Text = "2022/12/15"
sheet.Range["G4"].Text = "进行中"sheet.Range["A5"].Text = "DXA-003"
sheet.Range["B5"].Text = "2022/12/18"
sheet.Range["C5"].Text = "客户3"
sheet.Range["D5"].Text = "产品3"
sheet.Range["E5"].Text = "1500"
sheet.Range["F5"].Text = "2022/12/28"
sheet.Range["G5"].Text = "未完成"sheet.Range["A6"].Text = "DXA-004"
sheet.Range["B6"].Text = "2022/12/19"
sheet.Range["C6"].Text = "客户4"
sheet.Range["D6"].Text = "产品4"
sheet.Range["E6"].Text = "2500"
sheet.Range["F6"].Text = "2022/12/24"
sheet.Range["G6"].Text = "已取消"sheet.Range["A7"].Text = "DXA-005"
sheet.Range["B7"].Text = "2022/12/20"
sheet.Range["C7"].Text = "客户5"
sheet.Range["D7"].Text = "产品5"
sheet.Range["E7"].Text = "5000"
sheet.Range["F7"].Text = "2022/1/5"
sheet.Range["G7"].Text = "进行中"# 设置指定行的行高
sheet.Range["A2:G7"].RowHeight = 20# 设置指定列的列宽
sheet.SetColumnWidth(2, 11)
sheet.SetColumnWidth(3, 9)
sheet.SetColumnWidth(4, 8)
sheet.SetColumnWidth(6, 11)
sheet.SetColumnWidth(7, 10)# 设置指定单元格范围的边框样式
sheet.Range["A2:G7"].BorderAround(LineStyleType.Medium)
sheet.Range["A2:G7"].BorderInside(LineStyleType.Thin)
sheet.Range["A2:G2"].BorderAround(LineStyleType.Medium)
sheet.Range["A2:G7"].Borders.KnownColor = ExcelColors.Black# 设置指定单元格范围的单元格样式
sheet.Range["A2:G2"].Style.Color = Color.get_Gold()
sheet.Range["A2:G2"].Style.Font.IsBold = True# 保存文件
wb.SaveToFile("创建Excel.xlsx", FileFormat.Version2016)

生成文件:

用 Python 读取 Excel 数据

Spire.XLS for Python提供的 Worksheet.Range.Value 属性能以字符串形式返回指定单元格的数字值或文本值。要读取一个Excel工作表中的数据,可参考以下Python代码。

from spire.xls import *
from spire.common import *# 创建 Workbook 对象
wb = Workbook()# 加载一个Excel文件
wb.LoadFromFile("创建Excel.xlsx");# 获取第一个工作表
sheet = wb.Worksheets[0]# 获取包含数据的单元格区域
locatedRange = sheet.AllocatedRange# 遍历其中的行和列
for i in range(len(sheet.Rows)):for j in range(len(locatedRange.Rows[i].Columns)):# 获取单元格的数据print(locatedRange[i + 1, j + 1].Value + "  ", end='')print("")

返回结果:


此Python Excel库提供了各种Excel文档操作的示例代码,如编辑、转换Excel 文档以及插入图片、图表等元素。点击下载Spire.XLS for Python并解压缩后,可在 “Demos“ 文件夹中查看。

Spire.XLS for Python | 下载

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

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

相关文章

【微信小程序】6天精准入门(第5天:利用案例与后台的数据交互)附源码

一、什么是后台交互? 在小程序中,与后台交互指的是小程序前端与后台服务器之间的数据通信和请求处理过程。通过与后台交互,小程序能够获取服务器端的数据、上传用户数据、发送请求等。 小程序与后台交互可以实现数据的传输、用户认证、实时消…

什么是Sectigo证书?

Sectigo证书,早前被称为Comodo证书,是一种SSL(安全套接层)证书,用于保护互联网上的数据传输的安全性和隐私性。这些证书由全球领先的SSL证书颁发机构Sectigo颁发,被广泛用于网站、应用程序和服务器上。本文…

hexo发生错误 Error: Spawn failed

错误描述 仓库中有东西,运行如下命令后报错 hexo d报错提示: 原因分析: 看别人的博客是用git进行push或hexo d的时候改变了一些.deploy_git文件下的内容,这个.deploy_git的内容对于hexo来说可能是系统文件,这里挖坑 解决办法 一个个的…

分布式Trace:横跨几十个分布式组件的慢请求要如何排查?

目录 前言 一、问题的出现? 二、一体化架构中的慢请求排查如何做 三、分布式 Trace原理 四、如何来做分布式 Trace 前言 在分布式服务架构下,一个 Web 请求从网关流入,有可能会调用多个服务对请求进行处理,拿到最终结果。这个…

统计射击比赛成绩

题目描述 给定一个射击比赛成绩单,包含多个选手若干次射击的成绩分数,请对每个选手按其最高3个分数之和进行降序排名,输出降序排名后的选手ID序列。 条件如下 ① 一个选手可以有多个射击成绩的分数,且次序不固定。 ② 如果一个选手成绩少于3个,则认为选手的所有成绩无效…

Kotlin中类型转换

在 Kotlin 中,类型转换是一种常见的操作,用于将一个数据类型转换为另一个数据类型。在本篇博客中,我们将介绍 Kotlin 中的类型转换,并提供示例代码演示智能类型转换、强制类型转换以及可空类型的转换。 智能类型转换是 Kotlin 中…

自然语言处理---注意力机制

注意力概念 观察事物时,之所以能够快速判断一种事物(当然允许判断是错误的),是因为大脑能够很快把注意力放在事物最具有辨识度的部分从而作出判断,而并非是从头到尾的观察一遍事物后,才能有判断结果。正是基于这样的理论&#xf…

函数和执行上下文

一.变量提升与函数提升 变量提升:通过var关键字定义(声明)的变量,在定义语句之前就可以访问到,只不过其值是undefined 函数提升:通过function声明的函数,在之前就可以调用,值是函数…

为普通用户授权访问k8s资源(tls,rbac)

需求 为指定用户授权访问不同命名空间权限,例如:给新入职的员工zhangsan,添加权限,先给小的查询权限(default空间的pod读取权限),熟悉后,再给大的权限(所有的空间的pod的…

聊一聊如何在Vue中使用事件总线( Event Bus)进行组件间通信

事件总线模式允许不同的组件之间进行通信。它要求一个中央枢纽,组件可以通过它发送和接收事件,从而使组件之间的数据交换和交互更加顺畅。本文探讨了它的使用方法,以便开发人员能够充分利用它在Vue开发中的潜力。 跨通信是应用程序中组件之间…

STM32F4X定时器之基本定时器

一、定时器的概述 进行有规律的计数,每记一次数的时间都是固定的 定时器的本质:计数的总时间 记一次数的时间(时钟的频率) * 记多少次(重装载值)。 基本定时器属于片上外设,系统滴答定时器是…

GitHub下载太慢的解决方案

修改hosts文件: windows的hosts文件在 C:\Windows\System32\drivers\etc\hosts cmd管理员运行命令notepad C:\Windows\System32\drivers\etc\hosts 然后cmd命令重启网络ipconfig /flushdns windows修改hosts Ubuntu22.04修改hosts sudo vim /etc/hosts # This fil…

Java面试题-Java核心基础-第九天(泛型)

目录 一、泛型的理解 二、泛型的作用 三、泛型有哪些使用方式 四、上限、下限通配符的使用 五、泛型的原理 一、泛型的理解 泛型在jdk5中开始有的,泛型其实就是将类型进行参数话,使得类型在编译时就确定了,这种类型参数可以用在类、接口…

解决Docker安装MySQL不区分大小写问题

Docker安装MySQL忽略大小写问题的问题 连接MySQL: 查看当前mysql的大小写敏感配置 show global variables like %lower_case%; ------------------------------- | Variable_name | Value | ------------------------------- | lower_case_file_system …

openEuler 服务器安装 JumpServer (all-in-one 模式)

openEuler 服务器安装 JumpServer JumpServer 简介什么是 JumpServer ?JumpServer 的各种类型资产JumpServer 产品特色或优势JumpServer 符合 4A 规范 JumpServer 系统架构应用架构组件说明 JumpServer 安装部署环境要求网络端口网络端口列表防火墙常用命令 在线脚本…

LeetCode 414. Third Maximum Number【数组】简单

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

vlookup函数踩坑(wps)

使用wps的朋友看过来 vlookup函数踩坑,vlookup(查找值,查找范围,返回值的索引,精确查找or模糊查找) 我们要查找的数据的那一列,必须是查找范围的第一列! 案例,看下面的…

02、Python 字符串

目录 字符串的基础用法字符串包含引号字符串拼接获取用户输入长字符串原始字符串字节串字符串与字节串转换 字符串的基础用法 列字符串的内容几乎可以包含任何字符,英文字符也行,中文字符也行。 既可用单引号,也可用双引号 字符串包含引号…

shell的for循环与结构化

shell笔记 列表for循环不带列表for循环for循环举例1.例1 所有文件名大写替换为小写2. 例2 读取/etc/passwd文件,依次输出ip段3. 例3 读取/etc/hosts内容for循环,执行ping4. 例4 循环ip列表,输出对应编号5. 例5 批量添加用户 break1. 例1 brea…

C++ vector 的模拟实现

目录 1. vector 类的成员变量 2. 无参构造 3. 析构函数 4. size_t capacity() 5. size_t size() 6. void reserve(size_t n) 7. 迭代器 8. void push_back(const T& x) 9. T& operator[](size_t pos) 10. iterator insert(iterator pos, const T& val…