python处理Excel

说明:本文用于记录项目中遇到的处理excel文件的事情,包括excel和dataFrame格式转换、判断文件是否存在、清空文件内容、创建文件、删除文件、文件保存、将数据保存为Sheet{i}、删除Sheet。

一、判断文件是否存在、创建、删除文件

这里主要用到os、openpyxl库。

import pandas as pd
from openpyxl import load_workbook, Workbook

''' 文件删除 '''
if os.path.exists(xlsx_file_path):
    os.remove(xlsx_file_path)

''' 判断文件是否存在 '''
if os.path.exists(xlsx_file_path):
    print(f"文件 {xlsx_file_path} 存在.")
    ''' 清空文件内容 '''
    workbook = load_workbook(xlsx_file_path)

    # 遍历所有 sheet,并清空内容
    for sheet_name in workbook.sheetnames:
        sheet = workbook[sheet_name]
        for row in sheet.iter_rows():
            for cell in row:
                cell.value = None

    # 保存修改后的 Excel 文件
    workbook.save(xlsx_file_path)

else:
    ''' 创建一个新的、空的xlsx文件 '''
    # 创建一个新的工作簿(xlsx文件)
    workbook = Workbook()
    # 保存工作簿,即创建新的xlsx文件
    workbook.save(xlsx_file_path)
    print(f"文件 {xlsx_file_path} 新建成功.")

注意,新的、空的xlsx文件的表格名称为Sheet,和我们鼠标右键创建的excel不一样(名称为Sheet1)。

二、Excel与DataFrame转换

主要通过Pandas读取Excel文件内容。下面展示xlsx和csv类型的文件读取方法。

import pandas as pd

df = pd.read_csv(csv_file_path)     # 读取csv为dataFrame格式
print(df.head())    # 显示前几行内容

df = pd.read_csv(csv_file_path)     # 读取csv为dataFrame格式
print(df.head())    # 显示前几行内容

将DataFrame类型的数据保存为Excel。

df = ...

# 保存数据为xlsx,无列索引和表头
df.to_excel(xlsx_file_path, index=False, header= False)

# 保存数据为csv,无列索引和表头
df.to_csv(csv_file_path,index=False, header= False)

三、将数据保存为同一个xlsx文件的不同Sheet

这里CSDN上有很多方法,但是假如有这样一个情况:

每次循环我会产生一个文件,该文件会覆盖掉上一次生成的文件,我要怎么把每一份文件记录在同一个xlsx文件的不同sheet下呢?

CSDN的帖子很多都是不同数据保存在不同sheet下,不存在之前的数据被覆盖的问题。如果遇到这种情况,可以使用追加的方式进行写入。

# 假设循环N次
for i in range(N):
    with pd.ExcelWriter(xlsx_file_path, engine='openpyxl', mode='a') as writer:
        df.to_excel(writer, index=False, header= False, sheet_name = 'Sheet'+str(i))
        # 产生的Sheet为 Sheet1 ~ SheetN

四、删除Sheet

前面提到了,使用openpyxl创建新的xlsx文件时,会产生一个叫"Sheet"的表格,假如我们没有对他添加任何数据,而是以Sheet{i}的方式添加数据,那该表格就会多余,我们就要想办法删掉他。

from openpyxl import load_workbook
''' 删除空表头Sheet '''
sheet_name1 = 'Sheet'

# 载入工作簿
workbook = load_workbook('xlsx_file_path.xlsx')

# 删除目标Sheet
worksheet = workbook[sheet_name1]
workbook.remove(worksheet)

# 保存已做删除处理的工作簿
workbook.save('xlsx_file_pat.xlsx')

记得保存工作簿!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值