python 模块 openpyxl 操作Excel
openpyxl 介绍
openpyxl 是一个 Python 库,用于读取/写入 Excel 2010 xlsx/xlsm/xltx/xltm 文件。它是由于缺乏现有的库来从 Python 本地读取/写入 Office Open XML 格式而诞生的
安装openpyxl
pip install openpyxl
定义操作Excel的class
import openpyxl
class InAndOutExcel(object):
"""
读取Excel数据
:param filePath: 文件路径
:returns: Excel数据的字典
"""
def inXlsx(self, filePath):
workbook = openpyxl.load_workbook(filePath)
# 获取到excel文件中哪些表有数据
sheets = workbook.sheetnames
# 获取到excel文件中的第一张表
tab = workbook.get_sheet_by_name(sheets[0])
# 行数
rows = tab.max_row
# 列数
cols = tab.max_column
print(f"行数: {rows}; 列数: {cols}")
data = []
for i in range(1, rows + 1, 1):
temp = []
for j in range(1, cols + 1, 1):
temp.append(tab.cell(i, j).value)
data.append(temp)
return data
"""
读取Excel数据
:param filePath: 文件路径
:param data: 需要导出的数据
"""
def outXlsx(self, filePath, data):
target_list = data
# 创建一个workbook对象,并创建一个sheet
wb = openpyxl.Workbook()
# 获取当前活跃的worksheet,默认就是第一个worksheet
ws = wb.active
rows = len(target_list)
lines = len(target_list[0])
for i in range(rows):
for j in range(lines):
# 给单元格赋值
ws.cell(row=i + 1, column=j + 1).value = target_list[i][j]
# 保存表格
wb.save(filename=filePath)
使用
import uuid
if __name__ == '__main__':
inAndOutExcel = InAndOutExcel()
# 读取Excel
data = inAndOutExcel.inXlsx(r"D:\aaaaaa\test.xlsx")
num = 1
for i in range(len(data)):
print(num, end="\t")
print(data[i])
num += 1
# 写入Excel
data = [
('a', 'b', 'c', 'd', 'e', 'f'),
('aa', 'bb', 'cc', 'dd', 'ee', 'ff'),
('aaa', 'bbb', 'cc', 'ddd', 'eee', 'fff')
]
id = str(uuid.uuid1()).replace("-", "")
fileName = rf"D:\aaaaaa\{id}.xlsx"
inAndOutExcel.outXlsx(data=data, fileName=fileName)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!