日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python-封装方法用于读取excel

發布時間:2025/3/20 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python-封装方法用于读取excel 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用openpyxl方法實現讀寫excel表格

from openpyxl.reader.excel import load_workbook import os class ExcelMethod():def __init__(self, filename, sheetName):self.filename = filenameself.wb = load_workbook(filename)# 通過工作的表名獲取一個工作表對象self.sheet = self.wb[sheetName]# 獲取工作表中的最大行號self.maxRowNum = self.sheet.max_row# 獲取工作表中的最大列號self.max_column = self.sheet.max_column# 獲取總的行self.row = self.sheet.max_rowdef readExcel(self):dataList = []try:for row in self.sheet.rows:tmpList = []for cell in row:tmpList.append(cell.value)dataList.append(tmpList)except:print("%s加載失敗" % self.filename)else:return dataList[1:]def saveExcel(self, row, text):try:self.sheet.cell(row, self.max_column, text)self.wb.save(self.filename)except:print("%s 保存失敗" % self.filename)if __name__=="__main__":dri_url = os.path.join(os.getcwd() + r"\User1.xlsx")excel = ExcelMethod(dri_url,"Sheet1")dataJson = excel.readExcel()print(dataJson)excel.saveExcel(4,'pass')

1.實現獲取excel某張表的行數、單元格數據

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' #coding=utf-8 import xlrd #獲取excel文件 data = xlrd.open_workbook('file_path/xxx.xls')#存放excle表格的路徑 #獲取第一張表數據 tables = data.sheets()[0] #打印表行數 print(tables.nrows) #打印第4行,第3列單元格數據 print(tables.cell_value(3,2))

2.封裝獲取表格方法

此方法需要實現的作用是:其他方法再調用此方法時,如果傳入file_name和sheet_id,就調用對應路徑的excel文件和對應的表。如果不傳這兩個字段,就調用默認表格。

def __init__(self,file_name=None,sheet_id=None):if file_name:self.file_name = file_nameself.sheet_id = sheet_idelse:self.file_name = 'file_path/xxx.xls'self.sheet_id = 0self.data = self.get_data()

3.封裝獲取表格數據方法

封裝獲取tables的方法,用以之后獲取單元格行數、單元格數據,或其他表信息使用。

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def get_data(self):data = xlrd.open_workbook(self.file_name)tables = data.sheets()[self.sheet_id]return tables

4.封裝獲取單元格行數方法

def get_lines(self):tables = self.datareturn tables.nrows

5.封裝獲取單元格數據的方法

def get_value(self,row,col):return self.data.cell_value(row,col)

6.封裝獲取總行數和總列數

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! '''def get_nrown_ncols(self):#獲取總行數rowNum = self.data.nrows#獲取總列數colNum = self.data.ncolsreturn rowNum ,colNum

7.寫入數據到excel

def write_excel(self,row,column,value_back):''':param row: 某一列:param value: 需要寫入的值:return:'''wb=load_workbook(self.file_name)sheel = wb[self.sheel_name]#把值寫到row,column組成的單元格sheel.cell(row,column).value = value_back#保存excelwb.save(self.file_name)

8.根據行號查找對應內容

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! '''#根據行號,找到該行的內容def get_row_values(self,row):tales = self.datarow_data = tales.row_values(row)return row_data

整體代碼如下:

#coding: utf-8 import xlrdclass OpeExcel:def __init__(self,file_name=None,sheet_id=None):if file_name:self.file_name = file_nameself.sheet_id = sheet_idelse:self.file_name = 'file_path/xxx.xls'self.sheet_id = 0self.data = self.get_data()#獲取sheets的內容def get_data(self):data = xlrd.open_workbook(self.file_name)tables = data.sheets()[self.sheet_id]return tables#獲取單元格行數def get_lines(self):tables = self.datareturn tables.nrows#獲取單元格數據def get_value(self,row,col):return self.data.cell_value(row,col)if __name__ == '__main__':opers = OpeExcel()print(opers.get_lines())print(opers.get_value(3,2))

9.給一個excel文件追加內容:

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' from xlrd import open_workbook from xlutils.copy import copy import os dri_url = os.path.join(os.getcwd()+r"\user.xls") rexcel = open_workbook(dri_url)# 用wlrd提供的方法讀取一個excel文件 rows = rexcel.sheets()[0].nrows # 用wlrd提供的方法獲得現在已有的行數 excel = copy(rexcel) # 用xlutils提供的copy方法將xlrd的對象轉化為xlwt的對象 table = excel.get_sheet(0) # 用xlwt對象的方法獲得要操作的sheet table.write(1, 3, 'pass') # xlwt對象的寫方法,參數分別是行、列、值 excel.save(dri_url) # xlwt對象的保存方法,這時便覆蓋掉了原來的excel

python編輯已存在的excel坑: BadZipFile: File is not a zip file

為了能反復編輯已存在的excel文件并保存,需要xlwt、xlrd、xlutils組合起來使用,代碼如下:

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' import xlwt, os, xlrd from xlutils.copy import copyclass Do_Excel:def __init__(self,filename,sheetname="Sheet1"):self.filename = filenameself.sheetname = sheetname#讀取exceldef excel_read(self,x,y):data = xlrd.open_workbook(self.filename)tabel = data.sheet_by_name(self.sheetname)return tabel.cell_value(x,y)#判斷exce文件是否存在,不存在則創建,存在則直接打開編輯def excel_create(self):if not os.path.exists(self.filename):data = xlwt.Workbook()table = data.add_sheet(self.sheetname)table.write(0,0,"id")data.save(self.filename)#綜合xlw/xlrd/xlutis.copy 讀寫excledef write(self,row,col,value):self.excel_create()rb = xlrd.open_workbook(self.filename)wb = copy(rb)ws = wb.get_sheet(0)#1代表是寫到第幾個工作表里,從0開始算是第一個。ws.write(row,col,value)wb.save(self.filename)if __name__=="__main__":dir = os.path.split(os.path.split(os.path.realpath(__file__))[0])[0]dir_excel = os.path.join(dir+r"\data\user1.xlsx")Do_Excel(dir_excel).write(2,5,'pass')

解決辦法二:直接使用openpyxl的Workbook和load_workbook,簡單直接

rom openpyxl import Workbook,load_workbook import osclass Do_Excel:def __init__(self,filename,sheetname='Sheet1'):self.filename=filenameself.sheetname=sheetnamedef write(self,i,j,value):if not os.path.exists(self.filename):wb = Workbook()sh = wb.create_sheet(self.sheetname)else:wb = load_workbook(self.filename)sh = wb[self.sheetname]sh.cell(i,j).value=valuewb.save(self.filename)Do_Excel('test222.xlsx').write(1,1,'sdcds') Do_Excel('test222.xlsx').write(1,2,'change') Do_Excel('test222.xlsx').write(3,2,'pass') 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的python-封装方法用于读取excel的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 婷婷视频在线观看 | 亚洲天堂免费在线 | 在线观看涩涩视频 | 永久免费在线看片 | 狠狠a | 日韩欧美在线一区二区三区 | 制服中文字幕 | 天天干网站| 伊人中文字幕在线 | 中文字幕在线不卡 | 欧美亚洲一级片 | 麻豆av电影网 | 中文字幕天堂 | 国产成人视屏 | 先锋影音av在线资源 | av中文字| 午夜肉体高潮免费毛片 | 看欧美一级片 | 香蕉视频亚洲一级 | 波多野结衣在线一区 | 欧美一级录像 | 波多野结衣中文字幕一区二区 | 波多野结衣视频一区二区 | 91性生活| 国产大片中文字幕 | 国产精品亚洲第一 | 北条麻妃一区二区三区四区五区 | 蜜臀在线播放 | 熟妇人妻一区二区三区四区 | 丝袜综合网 | 动漫美女无遮挡免费 | 韩国三级免费 | 婷婷综合在线 | 精品久久久蜜桃 | 91九色国产视频 | 日日碰狠狠躁久久躁蜜桃 | 国产日韩欧美久久 | 日韩视频免费看 | 欧美人妻少妇一区二区三区 | 老鸭窝成人 | 特级a级片| 总裁边开会边做小娇妻h | 好爽…又高潮了毛片免费看 | 日韩在线观看一区二区 | 欧美呦呦 | 性——交——性——乱免费的 | 最新av电影网站 | 91视频网址 | 黄网在线免费观看 | 国产女人爽到高潮a毛片 | 小情侣高清国产在线播放 | 日本123区| 成人a站 | 中文字幕免费播放 | 肉丝肉足丝袜一区二区三区 | 亚洲av无码一区二区三区观看 | 亚洲欧美激情图片 | 毛片一级在线观看 | 亚洲三级视频 | 三年中文在线观看中文版 | 国产主播一区 | 国产综合精品久久久久成人影 | 欧美亚韩一区二区三区 | 日韩福利视频一区 | 最新国产一区 | 亚州精品毛片 | 岛国精品在线播放 | 欧美日韩成人 | 动漫精品一区二区三区 | 少妇久久久久久 | 日韩综合网| 欧美国产一级片 | 91色视频| 黄色片网站免费在线观看 | 最近中文字幕在线观看视频 | 91影院在线播放 | 国产亚洲精品一区二区三区 | www三级 | 嫩草影院永久入口 | 1769国产 | 免费av一级片 | 善良的女朋友在线观看 | 国产欧美精品一区二区色综合朱莉 | 日本一区二区在线看 | 一本色道久久综合亚洲精品小说 | 亚洲综合在线一区二区 | 无码人妻少妇色欲av一区二区 | 亚洲乱码久久 | 少妇与公做了夜伦理 | 国产小视频自拍 | 乱一色一乱一性一视频 | 青青草免费公开视频 | 小毛片 | 久久人人做 | 日韩精品高清在线观看 | 欧美成人视屏 | 另类视频在线观看 | 在线亚洲色图 | av片免费看 |