news 2026/6/23 10:28:12

python用openpyxl操作excel-读取或创建excel文件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python用openpyxl操作excel-读取或创建excel文件

python用openpyxl操作excel-读取或创建excel

1,读取 excel 文件返回 workbook 对象

def excel_read(file_path): """ 读取Excel文件返回workbook对象 """ if not os.path.exists(file_path): logger.error(f'文件{file_path}不存在') return None wb = load_workbook(file_path) return wb

2,可创建指定名称,含有多个表sheet名称的excel文件

import logging import com.pro001.log.pro_log_config as pro_log_config from openpyxl import Workbook, load_workbook from openpyxl.styles import Font, Alignment, Side, PatternFill, Border import os import datetime import random import pandas as pd def create_sn(prefix, output_len=4): '''生成含有前缀并至少带指定长度格式的序列号, 格式:prefix_d0{output_len}1''' if output_len < 1: output_len = 1 sn = 0 while True: sn += 1 if len(str(sn)) > output_len: # 当大于指定位数时直接加上位数 yield f'{prefix}' + str(sn) else: yield f'{prefix}' + '{:0{}}'.format(sn, output_len) def excel_create(file_path, file_name, *sheet_name): """ 根据参数创建Excel文件并建立sheet """ try: if not os.path.exists(file_path): os.makedirs(file_path) if not file_name or not file_name.lower().endswith('.xlsx'): file_name = datetime.datetime.now().strftime('%Y%m%d_%H%M%S') + '.xlsx' full_file_path = os.path.join(file_path, file_name) sn = create_sn('TB', 3) sheet_name_list = [] if not sheet_name: sheet_name = next(sn) else: for item in sheet_name: sheet_name_list.append(item) # 创建 Workbook 对象, wb = Workbook() # 创建指定名称的工作表 for sheet_name in sheet_name_list: wb.create_sheet(sheet_name) # 删除建立时生产的第一个默认sheet对象 shnames = wb.sheetnames wb.remove(wb[shnames[0]]) wb.save(full_file_path) # 获取wb对象所有的sheet名称 shnames = wb.sheetnames # 关闭wb对象 wb.close() logger.info(f'Excel文件:{full_file_path} 创建成功!') logger.info(f'工作表:' + ','.join(shnames)) return full_file_path except Exception as e: logger.error(f'Excel文件:{full_file_path} 创建失败!info:\n{e}') def main(): """主函数""" excel_create(r'F:\appData', '', 'TB01', 'TB02', 'TB03') if __name__ == '__main__': print('-' * 60) main()

运行结果:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 18:22:20

刷题日记day5(二分+前缀和)

题目描述 蒟蒻的第五篇博客希望大家支持 1314聪明的质检员 P1314 [NOIP 2011 提高组] 聪明的质监员 题目描述 小 T 是一名质量监督员&#xff0c;最近负责检验一批矿产的质量。这批矿产共有 nnn 个矿石&#xff0c;从 111 到 nnn 逐一编号&#xff0c;每个矿石都有自己的重…

作者头像 李华
网站建设 2026/6/22 21:17:09

005-AES:采招网

本文来做一个标准AES案例&#xff1a;采招网 找加密参数 这里有一个响应是密文&#xff0c;今天来解密响应内容&#xff1a; 找解密位置 试过hook&#xff0c;直接pass掉&#xff0c;因为鼠标一移动到页面上就会断下来&#xff0c;可以试试再加些条件来判断&#xff08;类似条…

作者头像 李华
网站建设 2026/6/23 3:32:39

基于python+django的在线考试系统(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦传统线下考试组织繁琐、阅卷效率低、成绩统计不便的痛点&#xff0c;设计并开发基于PythonDjango的在线考试系统。系统以Python作为核心开发语言&#xff0c;依托Django框架搭建高效稳定的后端服务架构&#xff0c;负责处理多角色权限管控、题库管理、试卷生…

作者头像 李华
网站建设 2026/6/22 6:39:17

C语言一维与二维数组名详解:从本质理解到高手应用

在C语言中&#xff0c;数组名看似简单&#xff0c;却是许多初学者容易混淆的重点和难点。理解数组名的本质&#xff0c;是掌握C语言数组编程的关键一步。数组是C语言中最基础且重要的数据结构之一&#xff0c;而数组名作为数组的标识符&#xff0c;其背后隐藏的语义和特性对于初…

作者头像 李华
网站建设 2026/6/23 17:59:36

当水印遇见AI:一场像素级的美学修复之旅

当水印遇见AI&#xff1a;一场像素级的美学修复之旅 【免费下载链接】IOPaint 项目地址: https://gitcode.com/GitHub_Trending/io/IOPaint 那张珍藏多年的老照片&#xff0c;右下角却印着碍眼的网站标识&#xff1b;精心收藏的漫画插图&#xff0c;被版权水印破坏了整…

作者头像 李华
网站建设 2026/6/23 5:19:33

软件测试是保障软件质量的关键环节,尤其在当前无法完全依赖形式化方法证明软件正确性的背景下,测试成为发现缺陷最主要、最有效的手段

一、前文铺垫中的任务管理部件与数据管理部件&#xff0c;构成了软件系统运行的基础支撑环境。任务管理部件通过识别事件驱动、时钟驱动及优先级相关的任务&#xff0c;确保系统行为的有序性和实时性&#xff1b;而数据管理部件则屏蔽底层存储差异&#xff0c;提供统一的数据访…

作者头像 李华