python openqyxl 操作excel

复制代码
import os
import sys
from openpyxl import load_workbook

class Excel:  # 读取数据

    def __init__(self, excel_path, sheet_name):
        """

        :param excel_path: excel文件路径 : xx/xxx.xlsx
        :param sheet_name: 需要打开表格名字 : sheet1
        """
        self.work_book = load_workbook(excel_path)
        self.work_sheet = self.work_book.get_sheet_by_name(sheet_name)

        # 拷贝
        self.new_sheet = self.work_book.copy_worksheet(self.work_sheet)

        # 获取总行,获取总列
        self.row = self.work_sheet.max_row  # 获取总行数
        self.columns = self.work_sheet.max_column  # 获取总列数


    def read_excel_date(self):
        """
        :return: 把列表第一行标题与每一行数据,拉链字典,然后append添加到list中,返回: [{},{}]
        """
        # 先判断表格中是否有内容
        if self.row > 1:
            lst = []
            key = list(map(lambda x: x.value, self.work_sheet[1]))  # 第一列的数值
            for row in self.work_sheet.iter_rows(min_row=2):
                value = list(map(lambda x: x.value, row))
                lst.append(dict(zip(key, value)))  # 拉链成一个列表字典
            return lst

    def write_excel_data(self, column, value, row=2):
        """

        :param column: 第几列
        :param value: 写入内容
        :param row: 第几行,默认从第二行开始,因为第一行是标题
        :return:
        """
        script_path = os.path.dirname(os.path.realpath(sys.argv[0]))
        relative_path = os.path.join(script_path, 'excel\修改结果.xlsx')
        self.new_sheet.cell(row=row, column=column, value=value)
        self.work_book.save(relative_path)

    def new_close(self,):
        """
        关闭excel 文件
        :return:
        """

        self.work_book.close()




# a = Excel(excel_path='D:\PyCharm\水保护\data.xlsx', sheet_name='Sheet1')
#
# new_row = 2
# for row in range(6):
#     a.write_excel_data(row=new_row, column=6, value='通过')
#     new_row += 1
#
# print('ok')
复制代码

使用

复制代码
from new_Flask.rendExcelopenpyxl import Excel


a = Excel(excel_path='D:\PyCharm\水保护\data.xlsx', sheet_name='Sheet1')

new_row = 2
for row in range(22):
    a.write_excel_data(row=new_row, column=6, value='通过')  # 写入功能
    new_row += 1

print('ok')
复制代码

write_excel_data() 

 

posted @   徐俊112  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示