Python之Excel数据相关

Excel

Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。在1993年,作为Microsoft Office的组件发布了5.0版之后,Excel就开始成为所适用操作平台上的电子制表软件的霸主。

它也为早起Microsoft Office三大办公基本应用(Word、Excel、PowerPoint)之一。

Excel分为两种格式:xls(Excel 97-2003)和xlsx(Excel 2007及以上)

CSV(Comma Separated Values)

它是以逗号为分隔符的纯文本文件,而 Excel 文件是 Microsoft Office 软件生成的一种电子表格文件。

下面表格对比两者区别

扩展名格式编辑功能大小兼容性
xlsx(xls)包含复杂的格式,如图表,公式,宏等可以使用 Microsoft Office 软件进行编辑Excel 文件具有丰富的分析和计算功能较大兼容性取决于使用的软件版本
csv只包含简单的文本和数字可以使用任何文本编辑器,如 Notepad 或 Sublime TextCSV 文件仅提供简单的数据存储功能较小具有较高的兼容性

示例

import os
import csv
import codecs
import openpyxl
from openpyxl.descriptors import NoneSet
from openpyxl.styles import (Font,Color,PatternFill
)
from openpyxl.chart import (PieChart,Reference
)class DealExport:def __init__(self):self.export_path = os.path.join(os.getcwd(), "data")def exportFileWithCSV(self, file_name, head, content):with open(os.path.join(self.export_path, file_name), mode='w', encoding='utf-8', newline='') as file:if file.tell() == 0:file.write(codecs.BOM_UTF8.decode("utf-8"))writer = csv.writer(file)writer.writerow(head)for row in content:writer.writerow(row)def exportFileWithXlsx(self, file_name, head, content):# 矩阵置换matrix = list(zip(*content))# 创建一个新的Excel文件workbook = openpyxl.Workbook()# 选择默认的活动工作表sheet = workbook.active# 输出工作表名ws = workbook.create_sheet('my_sheet', 0)totalRows = len(head)totalColumn = len(content)# for row in range(1, totalRows + 1):# ws.insert_rows(totalRows, totalColumn) # 在第一行插入rows列for i in range(0, totalRows):# 第 1 行 和 第 i+1 列 设置元素ws.cell(1, i + 1, head[i])self.setStyle(ws, i)for i in range(0, totalColumn):# 内容row = content[i]ws.append(row)# ws.row_dimensions[i].fill = PatternFill('lightDown', '00FFFF99', '00FFFF99')# ws.row_dimensions[i].height = 25# 读取数据表格范围rowsLen = ws.max_rowcolsLen = ws.max_column# for r in range(1, rows + 1):# for c in range(1, cols):# title = head[r]# sheet[r, c] = title[r]# # 设置列宽# sheet.column_dimensions[r].width = 20# # 创建饼状图# pie = PieChart()# # 说明 第 1 列 第 1行 至 第 headLen 行# labels = Reference(ws, 1, 1, totalRows)# # 数据# data = Reference(ws, totalColumn, 2, totalRows, 2)# pie.add_data(data, True)# pie.set_categories(labels)# pie.title = "测试饼状图"## ws.add_chart(pie, "D1")# 保存Excel文件workbook.save(os.path.join(self.export_path, file_name))def setStyle(self, sheet, index):# 设置字体样式font = Font('Arial', True, True, Color('00000000'))sheet['A1'].font = font# 设置单元格背景颜色# state = NoneSet(values=(['visible', 'hidden', 'veryHidden', 'show']))# 首行sheet.cell(1, index + 1).fill = PatternFill('solid', '0000FFFF', '0000FFFF')if __name__ == '__main__':deal = DealExport()head = ("对象", "名称", "描述", "类型", "第一年数量", "第二年数量", "第三年数量", "第四年数量")content = [["TYPE_A", "This must be subclassed", "demo", "add", 1, 2, 3, 4],["TYPE_B", "Defines the interface for stateless encoders/decoders", "demo", "delete", 2, 3, 4, 5],["TYPE_C","Encodes the object input and returns a tuple" + "\n" + "--" * 30 + "\n" + "Decodes the object input and returns a tuple","demo", "update", 3, 4, 5, 6],["TYPE_D", "Creates an IncrementalEncoder instance.", "demo", "add", 4, 5, 6, 7],["TYPE_E","This subclass of IncrementalEncoder can be used as the baseclass for an incremental encoder if the encoder must keep some of the output in a buffer between calls to encode()","demo", "update", 5, 6, 7, 8]]deal.exportFileWithCSV("test.csv", head, content)deal.exportFileWithXlsx("test.xlsx", head, content)

输出csv文件结果如下,大小为675字节
在这里插入图片描述
输出xlsx文件结果如下,大小为6KB = 6144字节
在这里插入图片描述

参考

  1. 腾讯云_一文看懂用Python读取Excel数据
  2. CSDN_openpyxl包操作Excel文件

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

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

相关文章

史上最全,从初级测试到高级测试开发面试题汇总,冲击大厂年50w+

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 接口测试面试相关…

合成数据对于机器学习模型至关重要

机器学习算法彻底改变了我们处理和分析数据的方式,在从医疗诊断到自动驾驶汽车等领域取得了突破。然而,为了有效地训练这些模型,需要大量高质量的数据。这可能是一个挑战,尤其是在具有敏感或私人信息或难以获取数据的行业中。 合…

试利用栈的基本操作写出先序遍历二叉树的非递归形式的算法

试利用栈的基本操作写出先序遍历二叉树的非递归形式的算法 代码思路: 要用栈解决先序遍历,我们首先要知道栈的性质和二叉树先序遍历的规则 栈最基本的就是先进后出 而二叉树先序遍历就是“根左右” 利用这两个性质,我们可以先将根结点入队…

Linux Vim撤销和恢复撤销快捷键

使用 Vim 编辑文件内容时,经常会有如下 2 种需求: 对文件内容做了修改之后,却发现整个修改过程是错误或者没有必要的,想将文件恢复到修改之前的样子。 将文件内容恢复之后,经过仔细考虑,又感觉还是刚才修改…

唐顿庄园的AI圣诞设计(ideogram.ai )

唐顿庄园是一部经典的英国历史剧,讲述了 Crawley 家族在 20 世纪初生活的故事。该剧以其精美的服装、场景和道具而闻名,因此它是圣诞装饰的绝佳灵感。 在本文中,我们将使用 ideogram.ai 创建一个 Downton Abbey 圣诞设计。ideogram.ai 是一个…

java入门,程序=数据结构+算法

一、前言 在学习java的时候,我印象最深的一句话是:程序数据结构算法,对于写java程序来说,这就是java的入门。 二、java基本数据结构与算法 1、数据类型 java中的数据类型8种基本数据类型: 整型 byte 、short 、int…

餐饮加盟信息展示预约小程序的内容如何

餐饮业规模持续增加,相关从业者逐渐增多,对中等规模以上的餐饮品牌来说,当有一定规模后除了开多家直营店外,还会开放招商加盟,扩展品牌、提升营收等。 由于餐饮加盟属于准属性业务,因此传统线下方式不太适…

小程序使用echarts(超详细教程)

小程序使用echarts第一步就是先引用到小程序里面,可以直接从这里下载 文件很多,我们值下载 ec-canvas 就好,下载完成后,直接放在pages同级目录下 index.js 在我们需要的页面的 js 文件顶部引入 // pages/index/index.js impor…

运动耳机品牌排行榜,推荐几款优秀的运动耳机

​说起耳机,相信大家都比较熟悉,特别是对于喜欢运动的爱好人士来说,那更是随身携带着。随着运动耳机的增长,大家都不知道该如何选择了。对于运动耳机除了需要佩戴稳固舒适之外,还有就是音质表现、防水性能、通话质量等…

鲜花展示预约小程序的内容有有哪些

鲜花店市场规模非常高,一方面是鲜花的用途广泛且需求量增加,另一方面则是入行门槛低,很多城市一条街就有可能汇聚了多家门店,尤其是节假日,对客流量高的门店则更加考验,如花束选购预约、信息展示及客户咨询…

基站/手机是怎么知道信道情况的?

在无线通信系统中,信道的情况对信号的发送起到至关重要的作用,基站和手机根据信道的情况选择合适的资源配置和发送方式进行通信,那么基站或者手机是怎么知道信道的情况呢? 我们先来看生活中的一个例子,从A地发货到B地…

分享一下微信小程序里怎么创建会员卡功能

在当今的数字化时代,微信小程序已经成为一种广泛使用的应用模式,涵盖了各种行业。对于企业而言,拥有一个会员卡系统可以更好地管理客户,提高客户忠诚度,并促进消费。本文将探讨如何在微信小程序中创建会员卡功能&#…