首页 > 编程语言 > python openqyxl 操作excel

python openqyxl 操作excel

时间:2023-07-31 18:13:22浏览次数:42  
标签:sheet python self work excel openqyxl path row

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() 

 

标签:sheet,python,self,work,excel,openqyxl,path,row
From: https://www.cnblogs.com/xujunhui/p/17594110.html

相关文章

  • 在python文件操作中使用writelines()函数却报write()函数使用错误
    代码是这样的:1deffunc1():2file=open("test.txt","a+",encoding="utf-8")3list1=[("20","10")]4list2=[{"name":"Tom","age":20}]5file.writelines(li......
  • 安装python以及常用库
    1. 去官网下载python,并安装,笔者版本3.11.4。【安装完毕后建议重启编译器和控制台,以确保导入了最新的环境变量】2. 设置镜像,加快pip3的下载速度。pip3configsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simple3. 安装numpy等  pip3installnum......
  • MegEngine Python 层模块串讲(下)
    在前面的文章中,我们简单介绍了在 MegEngineimperative 中的各模块以及它们的作用。对于新用户而言可能不太了解各个模块的使用方法,对于模块的结构和原理也是一头雾水。Python 作为现在深度学习领域的主流编程语言,其相关的模块自然也是深度学习框架的重中之重。模块串讲将对 ......
  • 【Python&目标识别】Labelimg标记深度学习(yolo)样本
    ​    人工智能、ai、深度学习已经火了很长一段时间了,但是还有很多小伙伴没有接触到这个行业,但大家应该多多少少听过,网上有些兼职就是拿电脑拉拉框、数据标注啥的,其实这就是在标记样本,供计算机去学习。所以今天跟大家分享下如何使用Labelimg去自己标记深度学习样本。......
  • 【Python】一键提取inp文件结构的脚本
    inp=input("输入文件路径:")#print(type(inp))ex_txt=inp+'-Struct.inp'inp=inp+'.inp'importref2=open(ex_txt,'w')withopen(inp,'r',encoding="utf-8")asf1:row_num=0foriinf1:......
  • Python 导入function和导入moudle的区别
    以pprint为例导入moudleimportpprint同比C#创建对象,可以通过moudle名访问其中定义的变量、函数、类是长期过程会将moudle定义加载到内存中,整个程序执行过程中均可使用访问方法moudleName.functionNamepprint.pprint(data)导入functionfrompprintimportpprint......
  • python 比较两个excel A有b没有
    importpandasaspd#读取第一个Excel文件df1=pd.read_excel('excel_file1.xlsx')#读取第二个Excel文件df2=pd.read_excel('excel_file2.xlsx')#找出在df1中存在但不在df2中的行missing_rows=df1[~df1['列名'].isin(df2['列名'])]#保存缺失的数据到新的E......
  • Python去除文本中的NUL(0x00)字符
    问题描述在python中将文本数据存储到PostgreSQL数据库中报以下错误ValueError:AstringliteralcannotcontainNUL(0x00)characters.原因PostgreSQL不支持在文本字段中存储NULL(0x00)字符(这与支持文本中带有NULL值的数据库显然不同)。如果需要存储NULL字符,则可以使用byt......
  • 秋叶整合包如何安装Python包
    前几天写了一篇《手把手教你在本机安装StableDiffusion秋叶整合包》的文章,有同学运行时遇到缺少PythonModule的问题,帮助他处理了一下,今天把这个经验分享给大家,希望能帮助到更多的同学。有时候启动某些插件的时候会出现ModuleNotFoundError的提示,类似下图这样:这时候就需要......
  • python学习_元组
    一、什么是元组?元组也是python内置的数据结构,是一个不可变的序列,他也可以存放不同数据类型的元素不可变序列有:就是不可以改变的序列,没有增、删、改的操作,如元组、字符串就是不可变序列可变序列:可以对序列进行增、删、改操作,对象地址不发生改变,如列表、字典等'''不可变序列与......