news 2026/4/18 10:55:38

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/4/18 1:45:01

【设计模式|第五篇】代理模式:控制访问的智能中介

什么是代理模式&#xff1f;生活化的比喻核心角色为什么要使用代理模式&#xff1f;代理模式在Java中的实现静态代理动态代理静态代理与动态代理的区别实际应用场景什么是代理模式&#xff1f; 代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c…

作者头像 李华
网站建设 2026/4/18 7:54:00

如何进行gif动画制作?GIF动画在线制作全攻略

想制作专属表情包、工作演示动图&#xff0c;或是记录生活中的趣味瞬间?不用纠结专业软件的复杂操作&#xff0c;一款便捷的GIF动画在线制作工具就能满足需求&#xff0c;从素材上传到动画生成全程简单易懂&#xff0c;新手也能快速上手&#xff0c;轻松解锁创意动画制作技能。…

作者头像 李华
网站建设 2026/4/18 5:18:50

代码随想录 并查集理论基础

一、背景 1.并查集可解决的问题:并查集常用来解决连通性问题。也就是说当我们需要判断两个元素是否在同一个集合里的时候,就想到要用并查集。 2.并查集的功能: (1)将两个元素添加到一个集合中。 (2)判断两个元素在不在同一个集合。 二、原理:从代码层面上讲,如何…

作者头像 李华
网站建设 2026/4/18 7:05:29

Jenkins自由风格作业构建和推送dokcer镜像

云原生环境下Dockerfile 职责分工的主流实践—— 核心逻辑是「研发主导编写、运维兜底适配、Dockerfile 随代码版本化管理」&#xff0c;既符合 “谁开发谁负责” 的权责匹配&#xff0c;也保障了镜像构建的标准化和环境兼容性,Dockerfile 本质是「应用运行环境的代码化描述」&…

作者头像 李华
网站建设 2026/4/18 7:54:56

雨燕直播案例分析:如何打造高并发直播平台

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 分析一个高并发直播平台的架构设计&#xff0c;包括&#xff1a;1. 负载均衡策略&#xff1b;2. 视频流分发网络(CDN)配置&#xff1b;3. 弹幕消息队列处理&#xff1b;4. 用户行为…

作者头像 李华