【Python】Pandas 操作Excel

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
@Time    :2022/3/27 16:14
@Author  :
@File    :PandasUtil.py
@Version :1.0
@Function:
"""

import pandas as pd


class PandasUtil:
    @staticmethod
    def readExcel(excelFile: str):
        """
        Pandas读取Excel数据
        :param excelFile:
        :return:
        """
        # header=None:表示所有数据均为body数据(没有表头) 反之不传header 则有表头(读到的数据是没有表头的)
        # data = pd.read_excel(excelFile, header=None)
        data = pd.read_excel(excelFile)
        # data.values 是pandas读取到的数据(二维数组) data.values[0][0]:表示第0行第0列
        print(data.values[0][3])  # 打印第0行第3列的单元格数据

    @staticmethod
    def writeNewExcel(newExcelFile: str):
        """
        Pandas新建Excel文件(若已有文件 则直接覆盖原文件)
        :param newExcelFile:
        :return:
        """
        # 表头数据
        cols = ['序号', '名称', '备注1']
        # 表体数据
        data = [
            ['1', '哈哈', '哈哈备注'],
            ['2', '看看', '看看备注']
        ]

        df = pd.DataFrame(columns=cols, data=data)
        df.to_excel(newExcelFile, index=False)  # 一般需要传index=False

    @staticmethod
    def writeAppendExcel(excelFile: str):
        """
        Pandas往已有的Excel表中追加数据
        :param excelFile:
        :return:
        """
        # 1 把Excel中已有的数据读取到DataFrame中
        dfOld = pd.read_excel(excelFile, header=None)  # 建议传header=None

        appendData = [
            ['5', '姓名追加', '100', '不男不女', '姓名追加的备注']
        ]
        # 2 把待追加的数据转换为DataFrame数据
        dfAppend = pd.DataFrame(appendData)

        # 3 新老数据合并成一个新的DataFrame数据
        dfNew = dfOld.append(dfAppend, ignore_index=True)  # 一般需要传ignore_index=True

        # 4 把新的DataFrame数据写入Excel中
        dfNew.to_excel(excelFile, index=False, header=False)  # 建议传header=False (须于第一步一致)


if __name__ == '__main__':
    # Pandas读取Excel数据
    # excelFile = r"E:\pandas\pandasTest.xlsx"
    # PandasUtil.readExcel(excelFile)

    # Pandas新建Excel文件
    # excelFile = r"E:\pandas\newPandasTest.xlsx"
    # PandasUtil.writeNewExcel(excelFile)

    # Pandas往已有的Excel表中追加数据
    excelFile = r"E:\pandas\pandasTest.xlsx"
    PandasUtil.writeAppendExcel(excelFile)

 

posted @ 2022-03-27 17:29  淡怀  阅读(808)  评论(0编辑  收藏  举报