准备工作

在开始之前,确保你的 Python 环境中已经安装了 openpyxlpandas 库。可以使用以下命令进行安装:

pip install openpyxl pandas

第一步:编写函数保留表头和第一行数据

我们首先编写一个函数 keep_first_two_rows,用于保留指定工作表的表头和第一行数据,其余数据将被删除。

from openpyxl import load_workbook

def keep_first_two_rows(filepath, sheetname):
try:
# 加载 Excel 文件
wb = load_workbook(filepath)
ws = wb[sheetname] # 删除第三行之后的所有行
ws.delete_rows(3, ws.max_row) # 保存修改后的 Excel 文件
wb.save(filepath)
print(f"成功保留表头和第一行数据到工作表 {sheetname}")
except Exception as e:
print(f"保留表头和第一行数据时出错: {e}")

解释:

  • load_workbook(filepath):加载指定路径的 Excel 文件。
  • wb[sheetname]:获取指定名称的工作表。
  • ws.delete_rows(3, ws.max_row):从第三行开始删除所有后续行,只保留前两行。
  • wb.save(filepath):保存对 Excel 文件的修改。

第二步:编写函数追加 CSV 数据

接下来,我们编写一个函数 append_data_from_csv,用于将 CSV 文件中的数据追加到指定工作表的末尾。

import pandas as pd
from openpyxl import load_workbook def append_data_from_csv(filepath, sheetname, csv_filepath):
try:
# 从 CSV 文件中读取新数据
new_data = pd.read_csv(csv_filepath) # 加载 Excel 文件
wb = load_workbook(filepath)
ws = wb[sheetname] # 将新数据追加到工作表末尾
for r_idx, row in enumerate(new_data.values, ws.max_row + 1):
for c_idx, value in enumerate(row, 1):
ws.cell(row=r_idx, column=c_idx, value=value) # 保存修改后的 Excel 文件
wb.save(filepath)
print(f"成功从 CSV 文件中追加新数据到工作表 {sheetname} 后面")
except Exception as e:
print(f"追加新数据时出错: {e}")

解释:

  • pd.read_csv(csv_filepath):使用 pandas 从指定路径读取 CSV 文件中的数据。
  • wb[sheetname]:获取指定名称的工作表。
  • enumerate(new_data.values, ws.max_row + 1):从工作表的最后一行开始,逐行追加 CSV 数据。
  • ws.cell(row=r_idx, column=c_idx, value=value):将 CSV 文件中的每个值插入到 Excel 工作表的对应单元格中。
  • wb.save(filepath):保存对 Excel 文件的修改。

第三步:主程序调用

最后,我们编写主程序,调用以上两个函数,完成具体操作。

if __name__ == "__main__":
# 指定 Excel 文件路径、工作表名和 CSV 文件路径
excel_file_path = "C:\\Users\\Administrator\\Desktop\\销售系数数据同步.xlsx"
sheet_name = "商品费用"
csv_file_path = "F:\\工作内容\\我的数据\\商品费用解析数据\\商品费用数据汇总.csv" # 调用函数保留表头和第一行数据
keep_first_two_rows(excel_file_path, sheet_name) # 调用函数从 CSV 文件中追加新数据到指定工作表后面
append_data_from_csv(excel_file_path, sheet_name, csv_file_path)

解释:

  • excel_file_path:指定 Excel 文件的路径。
  • sheet_name:指定工作表名称。
  • csv_file_path:指定 CSV 文件的路径。
  • keep_first_two_rows(excel_file_path, sheet_name):调用函数保留表头和第一行数据。
  • append_data_from_csv(excel_file_path, sheet_name, csv_file_path):调用函数从 CSV 文件中追加新数据到指定工作表。

完整代码

from openpyxl import load_workbook
import pandas as pd def keep_first_two_rows(filepath, sheetname):
try:
# 加载 Excel 文件
wb = load_workbook(filepath)
ws = wb[sheetname] # 删除第三行之后的所有行
ws.delete_rows(3, ws.max_row) # 保存修改后的 Excel 文件
wb.save(filepath)
print(f"成功保留表头和第一行数据到工作表 {sheetname}")
except Exception as e:
print(f"保留表头和第一行数据时出错: {e}") def append_data_from_csv(filepath, sheetname, csv_filepath):
try:
# 从 CSV 文件中读取新数据
new_data = pd.read_csv(csv_filepath) # 加载 Excel 文件
wb = load_workbook(filepath)
ws = wb[sheetname] # 将新数据追加到工作表末尾
for r_idx, row in enumerate(new_data.values, ws.max_row + 1):
for c_idx, value in enumerate(row, 1):
ws.cell(row=r_idx, column=c_idx, value=value) # 保存修改后的 Excel 文件
wb.save(filepath)
print(f"成功从 CSV 文件中追加新数据到工作表 {sheetname} 后面")
except Exception as e:
print(f"追加新数据时出错: {e}") if __name__ == "__main__":
# 指定 Excel 文件路径、工作表名和 CSV 文件路径
excel_file_path = "C:\\Users\\Administrator\\Desktop\\销售系数数据同步.xlsx"
sheet_name = "商品费用"
csv_file_path = "F:\\工作内容\\我的数据\\商品费用解析数据\\商品费用数据汇总.csv" # 调用函数保留表头和第一行数据
keep_first_two_rows(excel_file_path, sheet_name) # 调用函数从 CSV 文件中追加新数据到指定工作表后面
append_data_from_csv(excel_file_path, sheet_name, csv_file_path)

如何保留 Excel 表头和第一行数据并追加 CSV 数据的更多相关文章

  1. Python:读取Excel 不带第一行标题

    #根据第0到第1列进行重建 0-X 1-Y PX=sheet_name.col_values(0)[1:] PY=sheet_name.col_values(1)[1:] 读取的某一列后在后边加[1: ...

  2. python openpyxl模块实现excel的读取,新表创建及原数据表追加新数据

    当实际工作需要把excel表的数据读取出来,或者把一些统计数据写入excel表中时,一个设计丰富,文档便于寻找的模块就会显得特别的有吸引力,本文对openpyxl模块的一些常见用法做一些记录,方便工作 ...

  3. Jmeter系列(32)- 详解 CSV 数据文件设置

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 了解一哈什么是 CSV 文件 为了实现 ...

  4. Pandas_数据读取与存储数据(全面但不精炼)

    Pandas 读取和存储数据 目录 读取 csv数据 读取 txt数据 存储 csv 和 txt 文件 读取和存储 json数据 读取和存储 excel数据 一道练习题 参考 Numpy基础(全) P ...

  5. form表单序列化数据之后,追加额外数据

    form表单序列化数据之后追加额外数据多使用在js中,下面是追加额外数据的代码: <span style="font-size:18px;">$.param({'inv ...

  6. python 去除Excel中的重复行数据

    导入pandas import pandas as pd 1.读取excel中的数据: frame = pd.DataFrame(pd.read_csv('excel的绝对路径.csv'', 'She ...

  7. 一个将当前目录下HEX文件的第一行数据删除的程序

    为什么要写这样一个函数 在使用SoftConsole开发M3程序时,生成的hex文件,必须要把第一行数据删除,才能在Libero中使用,所以写了这个小工具,这是2.0版本了,第一版是直接删除第一行数据 ...

  8. 四十四、在SAP中冻结第一行表头

    一.表格数据量大了,如果需要界面滚动,则看不到第一行的表头文本 二.代码如下: 二.效果如下,任意滚动,表头还是被冻结可以看到

  9. (转)supertable像excel那样固定table的表头和第一列

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"/> <title> ...

  10. pandas:字段值插入数据表第一行的解决办法

    1. 问题描述 在对课程表进行数据抽取时,由于课表结构的原因,需要在原始表字段名作为第一行数据,并对原始字段名进行替换. 原始数据如下所示: 2. 解决办法 经思考,此问题可抽象为:在不影响原始数据的 ...

随机推荐

  1. 调用App Store Connect Api

    对iOS的证书.描述文件.账号.设备等管理,之前都去苹果开发者中心操作,官网上操作也比较繁杂,想搞一些自动化之类的,更是麻烦,有时候官网都打不开-- 其实苹果还提供里一套API接口,创建证书.创建账号 ...

  2. 【力扣精选】Oracle SQL 176. 第二高的薪水

    [力扣精选]Oracle SQL 176. 第二高的薪水 这道题很适合用来作为窗口函数的入门使用练习 链接如下: https://leetcode.cn/problems/second-highest ...

  3. 第五課-Channel Study TCP Listener & Web Service Listener

    示例描述: 我们将研究如何获取相当常见的HL7 v2消息并将其映射到自定义Web Service接口服务.在许多实际情况下,当我们要连接到HIE,EMPI,数据仓库或数据存储库时,必须这样做.此用例说 ...

  4. 力扣287(java&python)-寻找重复数(中等)

    题目: 给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数. 假设 nums 只有 一个重复的整数 ,返回 这个重复的 ...

  5. CF1481D AB Graph 题解

    CF1481D AB Graph 题解 [思路] 首先有几个显而易见的东西. 如果存在两个点,他们之间的两条边字母相同,那么一定有解(在两个点之间跳.) 否则,这张图的邻接矩阵一定长成这样: * a ...

  6. EasyNLP集成K-BERT算法,借助知识图谱实现更优Finetune

    导读 知识图谱(Knowledge Graph)的概念⾸次出现2012年,由Google提出,它作为⼀种⼤规模语义⽹络, 准确地描述了实体以及实体之间的关系.知识图谱最早应⽤于搜索引擎,⽤于准备返回⽤ ...

  7. 史上最强《Java 开发手册》泰山版王者归来!

    阿里妹导读:潜力修炼一年之久的<Java 开发手册(泰山版)>今天发布!此次共计新增 34 条规约,修改描述 90 处,其中错误码规则更是第一次提出完整的解决方案,大家参考错误码示例表,欢 ...

  8. 云效Codeup代码评审中的代码协同

    简介: 云效 Codeup 汇集了阿里巴巴最新的代码托管.代码协同技术,希望能够造福更多中国和世界的开发者. 大神说:"Show me the code",于是就有了代码评审. & ...

  9. IPv6时代,中小企业该如何布局?

    ​简介:IPv6要为全世界的每一粒沙子都分配一个IP,你的企业跟上了吗? 11月中旬,中央网信办等部门联合印发了<关于开展IPv6技术创新和融合应用试点工作的通知>,联合组织开展IPv6技 ...

  10. github只下载某个文件或文件夹(使用GitZip插件)

    安装GitZip插件 (此安装过程需要梯子(不懂"梯子",百度一下就明白)) 1. 打开插件管理页面 方法一:打开Chrome浏览器(Edge浏览器同理),在Chrom地址栏输入c ...