当前位置: 首页 > news >正文

文件格式转换:EXCEL和CSV文件格式互相转换

目录

  • 1.EXCEl和CSV文件格式互相转换
    • 1.1首先安装所需的Python包
    • 1.2excel转换为csv代码如下:
    • 1.3csv转换为excel代码如下:

由于excel文件在数学建模数据处理当中的局限性,我们通常把excel文件转换为csv文件来处理,下面是相关的代码,我直接封装成函数,你们直接调用即可,我会添加详细的注释。

1.EXCEl和CSV文件格式互相转换

1.1首先安装所需的Python包

先激活自己创建的环境,不会的可以参考我这篇博文Python-Anaconda基础虚拟环境创建及激活.

激活环境以后,使用下述代码进行安装。

pip install pandas openpyxl

安装结果如下:
在这里插入图片描述

1.2excel转换为csv代码如下:

import os
import pandas as pddef excel_to_csv_all_sheets(excel_file_path, output_prefix=""):"""将Excel文件的所有工作表转换为CSV文件,保存在与Excel文件相同的目录中。参数:excel_file_path (str): Excel文件的路径output_prefix (str): 输出CSV文件的前缀(默认为空字符串)"""try:# 获取Excel文件所在的目录output_directory = os.path.dirname(excel_file_path)# 读取Excel文件中的所有工作表excel_data = pd.read_excel(excel_file_path, sheet_name=None)# 遍历每个工作表并将其转换为CSV文件for sheet_name, data in excel_data.items():# 如果指定了前缀,则使用前缀+工作表名称作为文件名,否则仅使用工作表名称csv_file_name = f"{output_prefix}{sheet_name}.csv"csv_file_path = os.path.join(output_directory, csv_file_name)data.to_csv(csv_file_path, index=False)print(f"成功将工作表 {sheet_name} 转换为CSV文件 {csv_file_path}")except Exception as e:print(f"转换失败: {e}")# 下面是相应的调用函数代码
excel_to_csv_all_sheets('eg_convert.xlsx', output_prefix="my_custom_name_")

代码使用说明:eg_convert.xlsx是你要转换的文件,你自己填写,my_custom_name_是转换后的文件名,比如说转换后为output.csv,那么你的my_custom_name_就写output。
注意它是将每个Sheet都单独转换出来,成为独立的csv文件。
注意my_custom_name_.csv不能已经存在,否则代码会报错。

在这里插入图片描述
代码运行过程:在这里插入图片描述

转换后的结果如下:

在这里插入图片描述

1.3csv转换为excel代码如下:

import os
import pandas as pddef csv_to_excel_separate_sheets(csv_file_paths, excel_file_path):"""将多个CSV文件转换为Excel文件中的单独工作表。参数:csv_file_paths (list of str): CSV文件的路径列表excel_file_path (str): 输出Excel文件的路径"""try:# 创建ExcelWriter对象以便写入Excel文件with pd.ExcelWriter(excel_file_path, engine='openpyxl') as writer:# 遍历每个CSV文件路径,将其读取并写入到Excel文件的单独工作表中for csv_file_path in csv_file_paths:df = pd.read_csv(csv_file_path)  # 读取CSV文件# 使用CSV文件名(去除扩展名)作为工作表名称sheet_name = os.path.basename(csv_file_path).replace('.csv', '')df.to_excel(writer, index=False, sheet_name=sheet_name)print(f"成功将CSV文件 {csv_file_path} 转换为Excel文件中的工作表 {sheet_name}")print(f"所有CSV文件已成功转换为Excel文件 {excel_file_path}")except Exception as e:print(f"转换失败: {e}")# 将多个CSV文件转换为一个Excel文件
csv_files = ['my_custom_name_Sheet1.csv', 'my_custom_name_Sheet2.csv']  # CSV文件列表
csv_to_excel_separate_sheets(csv_files, 'combined_output.xlsx')

代码使用说明:
很直观,my_custom_name_Sheet1.csvmy_custom_name_Sheet2.csv是需要转换的csv文件,combined_output.xlsx是合并后的文件,。
注意:my_custom_name_Sheet1.csvmy_custom_name_Sheet2.csv文件内部必须有数据,否则会报错,如果只有一个文件,调用格式如下:

如果只有一个csv文件需要转换,其调用格式如下:

csv_files = ['my_custom_name_Sheet1.csv']  # CSV文件列表
csv_to_excel_separate_sheets(csv_files, 'combined_output.xlsx')

代码运行过程:
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 进程启动和进程终止
  • Python 中 Locale.Error: Unsupported Locale Setting 错误
  • JAVA基础:线程优先级和精灵线程
  • CGAL GIS 应用 - 从点云到DTM
  • 勇于尝试,永远行动 - 《洛克菲勒写给儿子的38封信》读书笔记
  • 计算机毕业设计 扶贫助农系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 题目:单调栈
  • Java自学之路:掌握接口的艺术
  • fpga系列 HDL:全连接层的浮点数乘法器FM实现
  • maya的重命名物体和材质工具(带ai过程)
  • 机器学习 vs 深度学习:深入浅出解析两者的区别
  • 【Java基础】String详解
  • overleaf如何引用文献
  • 时序预测 | Matlab实现SSA-TCN麻雀搜索算法优化时间卷积网络时序预测-递归预测未来数据(单输入单输出)
  • 【每日刷题】Day123
  •  D - 粉碎叛乱F - 其他起义
  • Druid 在有赞的实践
  • Electron入门介绍
  • Lucene解析 - 基本概念
  • Python利用正则抓取网页内容保存到本地
  • Twitter赢在开放,三年创造奇迹
  • vue-router的history模式发布配置
  • 安卓应用性能调试和优化经验分享
  • 基于axios的vue插件,让http请求更简单
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 前端面试总结(at, md)
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (第61天)多租户架构(CDB/PDB)
  • (回溯) LeetCode 77. 组合
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (新)网络工程师考点串讲与真题详解
  • (转载)Linux网络编程入门
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET BackgroundWorker
  • .NET Core引入性能分析引导优化
  • .Net MVC + EF搭建学生管理系统
  • .net 调用php,php 调用.net com组件 --
  • .NET的微型Web框架 Nancy
  • .NET开源快速、强大、免费的电子表格组件
  • .NET框架
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • [1204 寻找子串位置] 解题报告
  • [20170728]oracle保留字.txt
  • [AIGC] Redis基础命令集详细介绍
  • [ajaxupload] - 上传文件同时附件参数值