Package: pxm-liumou-Stable
PythonXlsxManger由于工作中偶尔需要编写一些表格数据处理脚本，而其中大部分代码都是重复的，所以为了更好的开发效率，我决定将日常表格管理脚本中用到的基础功能集合起来并使用开源都方式共享，同时也希望有更多人能够一起完善。简介PythonXlsxManger Gitee项目（Python Linux基础模块:pxm）是使用Python3基于现有openpyxl模块编写的表格读写基础模块，实现常用功能。
在模块设计上，借鉴了Shell语言管道的特性,可一步步截取列、行数据(Cut开头的函数)特色使用全中文注释，即使小白也能轻松上手完全开源、永久免费更新日志1.1.3: 完善覆盖写入功能使用方法安装具体可以访问Pypi项目地址https://pypi.org/project/pxmpip3install--upgradepxm-liuyi778-Stable查看所有功能importpxm_liumou_Stableprint(help(pxm_liumou_Stable))效果"C:\Program Files\Python310\python.exe"D:/code/Coding/gsgl/第三套丢失的附件/vars.pyHelponpackagepxm_liumou_Stable:

NAMEpxm_liumou_Stable

DESCRIPTION@File:pxm_liuyi778_Stable.py@Time:2023-02-1722:58@Author:坐公交也用券@Version:1.0@Contact:faith01238@hotmail.com@Homepage:https://liumou.site@Desc:当前文件作用

PACKAGECONTENTSdicexistspxmreadwrite

CLASSESbuiltins.objectpxm_liumou_Stable.read.Readpxm_liumou_Stable.write.WriteclassRead(builtins.object)|Read(filename)||Methodsdefinedhere:||__init__(self,filename)|读取表格数据|:paramfilename:需要读取的表格文件||base(self)|打印表格文件基础信息|:return:||cut_column(self,col=0)|对已读取的数据进行列截取|:paramcol:需要截取的列|:return:||cut_column_range(self,start=0,end=1)|对已读取的数据进行列范围截取|:paramstart:起始列|:paramend:结束列|:return:||cut_line(self,n=0)|对已读取的数据进行截取指定行|:paramn:需要读取的行|:return:取结果(bool),获取数据请通过实例变量(DataR)获取||cut_line_range(self,start=0,end=1)|对已读取的数据进行行范围截取|:paramstart:起始行|:paramend:结束行|:return:取结果(bool),获取数据请通过实例变量(DataR)获取||get_all(self)|获取指定Sheet所有数据,可通过Set函数设置指定Sheet|:return:||get_column_range(self,start=0,end=1)|读取列范围|:paramstart:起始列|:paramend:结束列|:return:获取结果(bool),获取数据请通过实例变量(DataR)获取||get_line_range(self,start=0,end=1)|读取行范围(1是第一行)|:paramstart:起始行|:paramend:结束行|:return:获取结果(bool),获取数据请通过实例变量(DataR)获取||read_col(self,col=1)|读取某列所有数据|:paramcol:需要读取的列|:return:||read_line(self,row=1)|读取某行数据|:paramrow:需要读取的行|:return:||set(self,debug=False,sheet_name=None,sheet_index=None)|自定义设置|:paramdebug:是否开启Debug|:paramsheet_name:通过工作簿名称选择,当设置了此项切勿再设置索引(默认通过索引设置/当同时设置则优先使用索引值)|:paramsheet_index:通过工作簿索引值选择(默认:0)|:return:||----------------------------------------------------------------------|Datadescriptorsdefinedhere:||__dict__|dictionaryforinstancevariables(ifdefined)||__weakref__|listofweakreferencestotheobject(ifdefined)classWrite(builtins.object)|Write(filename,create=True)||Methodsdefinedhere:||__init__(self,filename,create=True)|写入表格数据|:paramfilename:需要写入的表格文件|:paramcreate:是否自动创建文件||create_sheet(self,name,index=None)|创建sheet|:paramname:新sheet的名称|:paramindex:设置sheet排序位置(0是排第一)|:return:创建结果||delete_line(self,index,row=1)|删除行数据|:paramindex:需要删除的起始行|:paramrow:需要删除的行数总数,默认删除1行(也就是起始行)|:return:删除结果||set(self,add=True,head=True,line=None,speed_sum=100,serial_number=False)|设置写入参数|:paramadd:是否使用追加模式(默认:True)|:paramhead:是否保留表头标题(默认:True)|:paramline:是否自定义写入的行，如果需要自定义，请传所在行的整数|:paramspeed_sum:写入多少行数据进行一次进度显示|:paramserial_number:是否自动添加序号(默认False)|:return:||set_center(self,whole=True,line=None,col=None,lines=None,cols=None)|设置居中,此功能会遍历所有参数进行居中设置(如果设置了全局则忽略后面的参数)|:paramwhole:全局居中(bool)|:paramline:指定行居中(int)|:paramcol:指定列居中(int)|:paramlines:指定行范围居中,通过列表传入需要居中的行([int,int])|:paramcols:指定列范围居中,通过列表传入需要居中的列([int,int])|:return:||update_line(self,row,data_list)|更新某行数据|:paramrow:需要更新的行|:paramdata_list:行数据列表|:return:||write_add_col(self,col,data)|写入一列数据|:paramcol:列数|:paramdata:数据|:return:||write_add_line(self,data)|追加写入一行数据|:paramdata:数据,以列表形式["张三","男","33"]|或者字典模式1:{"A":"刘某","B":"男","C":"22"}|字典模式2:{1:1,2:2,3:3}|:return:||write_cover_lists(self,lists)|通过列表方式覆盖写入数据,一次性最多写入104万行数据|:paramlists:写入数据列表,例如:[["张三","男","33"],["李四","男","32"]]|:return:||write_lists(self,lists)|通过列表方式追加写入数据,一次性最多写入104万行数据|:paramlists:写入数据列表,例如:[["张三","男","33"],["李四","男","32"]]|:return:||----------------------------------------------------------------------|Datadescriptorsdefinedhere:||__dict__|dictionaryforinstancevariables(ifdefined)||__weakref__|listofweakreferencestotheobject(ifdefined)DATA__all__=['Read','Write']FILEc:\users\y\appdata\roaming\python\python310\site-packages\pxm_liumou_stable\__init__.pyDemo读取#!/usr/bin/env python3# -*- encoding: utf-8 -*-"""@File    :   demo.py@Time    :   2023-02-17 23:36@Author  :   坐公交也用券@Version :   1.0@Contact :   faith01238@hotmail.com@Homepage : https://liumou.site@Desc    :   当前文件作用"""fromColorInfoimportColorLoggerfrompxm_liuyi778_StableimportReadclassDemo:def__init__(self,filename="xls/demo.xlsx"):""":param filename:"""self.filename=filenameself.logger=ColorLogger(class_name=self.__class__.__name__)self.r=Read(filename=self.filename)# 读取文件self.r.set(sheet_index=1)# 设置Sheet索引值1（也就是第二个Sheet)self.r.read_all()# 获取所有数据defall(self):ifself.r.Err:self.logger.error("读取失败: ",r.Err)else:self.logger.info("数据读取成功")print(self.r.DataR)defline(self):data=self.r.cut_line(0)# 截取第一行并获取最终结果print("第一行的数据: ",data.DataR)defstart(self):self.all()self.line()self.info()definfo(self):print(f"当前工作簿数据总列数:{self.r.InfoCols}")print(f"当前工作簿数据总行数:{self.r.InfoRows}")print(f"当前工作簿索引值:{self.r.InfoSheet}")print(f"当前工作簿名称:{self.r.InfoSheetName}")if__name__=="__main__":d=Demo()d.start()效果2023-02-2111:17:14demo.pyline:33-Class:DemoFunction:all-INFO:数据读取成功[['专业','人数'],['网络',3],['安全',3]]第一行的数据:['专业','人数']当前工作簿数据总列数:2当前工作簿数据总行数:3当前工作簿索引值:1当前工作簿名称:Sheet2问题反馈点击链接加入QQ群聊【坐公交也用券】