免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      Python處理Excel效率高十倍(下篇)通篇硬干貨,再也不用加班啦

      Python處理Excel效率高十倍(下篇)通篇硬干貨,再也不用加班啦

      《用Python處理Excel表格》下篇來啦!

      身為工作黨或?qū)W生黨的你,平日里肯定少不了與Excel表格打交道的機(jī)會。當(dāng)你用Excel處理較多數(shù)據(jù)時,還在使用最原始的人工操作嗎?現(xiàn)在教你如何用Python處理Excel,從此處理表格再也不加班,時間縮短數(shù)十倍!

      上篇我們進(jìn)行了一些事前準(zhǔn)備,目的是用Python提取Excel表中的數(shù)據(jù)。而這一篇便是在獲取數(shù)據(jù)的基礎(chǔ)上,對Excel表格的實操處理。


      操作

      創(chuàng)建新的excel

      第9行代碼用來指定創(chuàng)建的excel的活動表的名字:·不寫第9行,默認(rèn)創(chuàng)建sheet·寫了第9行,創(chuàng)建指定名字的sheet表

      import osimport openpyxlpath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.Workbook()sheet = workbook.activesheet.title = ‘1號sheet’workbook.save(‘1.xlsx’)

      修改單元格、excel另存為

      第9行代碼,通過給單元格重新賦值,來修改單元格的值第9行代碼的另一種寫法sheet[‘B1’].value = ‘age’第10行代碼,保存時如果使用原來的(第7行)名字,就直接保存;如果使用了別的名字,就會另存為一個新文件

      import osimport openpyxlpath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表sheet[‘A1’] = ‘name’workbook.save(‘test.xlsx’)

      添加數(shù)據(jù)

      插入有效數(shù)據(jù)使用append()方法,在原來數(shù)據(jù)的后面,按行插入數(shù)據(jù)

      import osimport openpyxlpath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))data = [ [‘素子’,23], [‘巴特’,24], [‘塔奇克馬’,2]]for row in data: sheet.append(row) # 使用append插入數(shù)據(jù)workbook.save(‘test.xlsx’)

      插入空行空列

      ·insert_rows(idx=數(shù)字編號, amount=要插入的行數(shù)),插入的行數(shù)是在idx行數(shù)的下方插入·insert_cols(idx=數(shù)字編號, amount=要插入的列數(shù)),插入的位置是在idx列數(shù)的左側(cè)插入

      import osimport openpyxlpath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))sheet.insert_rows(idx=3, amount=2)sheet.insert_cols(idx=2, amount=1)workbook.save(‘test.xlsx’)

      刪除行、列

      ·delete_rows(idx=數(shù)字編號, amount=要刪除的行數(shù))·delete_cols(idx=數(shù)字編號, amount=要刪除的列數(shù))

      import osimport openpyxlpath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))sheet.delete_rows(idx=10) # 刪除第10行sheet.delete_cols(idx=1, amount=2) # 刪除第1列,及往右共2列workbook.save(‘test.xlsx’)

      移動指定區(qū)間的單元格(move_range)

      move_range(“數(shù)據(jù)區(qū)域”,rows=,cols=):正整數(shù)為向下或向右、負(fù)整數(shù)為向左或向上

      import osimport openpyxlpath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))sheet.move_range(‘D11:F12’,rows=0,cols=-3) # 移動D11到F12構(gòu)成的矩形格子workbook.save(‘test.xlsx’)

      字母列號與數(shù)字列號之間的轉(zhuǎn)換核心代碼

      from openpyxl.utils import get_column_letter, column_index_from_string# 根據(jù)列的數(shù)字返回字母print(get_column_letter(2)) # B# 根據(jù)字母返回列的數(shù)字print(column_index_from_string(‘D’)) # 4

      舉個例子:

      import osimport openpyxlfrom openpyxl.utils import get_column_letter, column_index_from_stringpath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘2.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))# 根據(jù)列的數(shù)字返回字母print(get_column_letter(2)) # B# 根據(jù)字母返回列的數(shù)字print(column_index_from_string(‘D’)) # 4

      字體樣式查看字體樣式

      import osimport openpyxlimport openpyxl.stylespath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’+str(sheet))cell = sheet[‘A1’]font = cell.fontprint(‘當(dāng)前單元格的字體樣式是’)print(font.name, font.size, font.bold, font.italic, font.color)”’當(dāng)前活動表是:當(dāng)前單元格的字體樣式是等線 11.0 False False Parameters:rgb=None, indexed=None, auto=None, theme=1, tint=0.0, type=’theme””

      修改字體樣式

      openpyxl.styles.Font(name=字體名稱,size=字體大小,bold=是否加粗,italic=是否斜體,color=字體顏色)其中,字體顏色中的color是RGB的16進(jìn)制表示

      import osimport openpyxlimport openpyxl.stylespath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(sheet)cell = sheet[‘A1’]cell.font = openpyxl.styles.Font(name=”微軟雅黑”, size=20, bold=True, italic=True, color=”FF0000″)workbook.save(‘test.xlsx’)

      再者,可以使用for循環(huán),修改多行多列的數(shù)據(jù),在這里介紹了獲取的方法

      import osimport openpyxlimport openpyxl.stylespath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(sheet)cell = sheet[‘A’]for i in cell: i.font = openpyxl.styles.Font(name=”微軟雅黑”, size=20, bold=True, italic=True, color=”FF0000″)workbook.save(‘test.xlsx’)

      設(shè)置對齊格式

      Alignment(horizontal=水平對齊模式,vertical=垂直對齊模式,text_rotation=旋轉(zhuǎn)角度,wrap_text=是否自動換行)水平對齊:‘distributed’,‘justify’,‘center’,‘left’, ‘centerContinuous’,’right,‘general’垂直對齊:‘bottom’,‘distributed’,‘justify’,‘center’,‘top’

      import osimport openpyxl.stylespath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))cell = sheet[‘A1’]alignment = openpyxl.styles.Alignment(horizontal=”center”, vertical=”center”, text_rotation=0, wrap_text=True)cell.alignment = alignmentworkbook.save(‘test.xlsx’)

      當(dāng)然,你仍舊可以調(diào)用for循環(huán)來實現(xiàn)對多行多列的操作

      import osimport openpyxl.stylespath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))cell = sheet[‘A’]alignment = openpyxl.styles.Alignment(horizontal=”center”, vertical=”center”, text_rotation=0, wrap_text=True)for i in cell: i.alignment = alignment workbook.save(‘test.xlsx’)

      設(shè)置行高列寬

      設(shè)置行列的寬高:·row_dimensions[行編號].height = 行高·column_dimensions[列編號].width = 列寬

      import osimport openpyxlimport openpyxl.stylespath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))# 設(shè)置第1行的高度sheet.row_dimensions[1].height = 50# 設(shè)置B列的卷度sheet.column_dimensions[‘B’].width = 20workbook.save(‘test.xlsx’)

      設(shè)置所有單元格(顯示的結(jié)果是設(shè)置所有,有數(shù)據(jù)的單元格的)

      from openpyxl import load_workbookfrom openpyxl.utils import get_column_letterimport osos.chdir(r’C:UsersasukaDesktop’)workbook = load_workbook(‘1.xlsx’)print(workbook.sheetnames) # 打印所有的sheet表ws = workbook[workbook.sheetnames[0]] # 選中最左側(cè)的sheet表width = 2.0 # 設(shè)置寬度height = width * (2.2862 / 0.3612) # 設(shè)置高度print(“row:”, ws.max_row, “column:”, ws.max_column) # 打印行數(shù),列數(shù)for i in range(1, ws.max_row + 1): ws.row_dimensions[i].height = heightfor i in range(1, ws.max_column + 1): ws.column_dimensions[get_column_letter(i)].width = widthworkbook.save(‘test.xlsx’)

      合并、拆分單元格

      合并單元格有下面兩種方法,需要注意的是,如果要合并的格子中有數(shù)據(jù),即便python沒有報錯,Excel打開的時候也會報錯。merge_cells(待合并的格子編號)merge_cells(start_row=起始行號,start_column=起始列號,end_row=結(jié)束行號,end_column=結(jié)束列號)

      import osimport openpyxlimport openpyxl.stylespath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))# 方法1:sheet.merge_cells(‘A12:B13’)# 方法2:sheet.merge_cells(start_row=12, start_column=3, end_row=13, end_column=4)# 加一個居中對齊cell = sheet[‘A12’]alignment = openpyxl.styles.Alignment(horizontal=”center”, vertical=”center”, text_rotation=0, wrap_text=True)cell.alignment = alignmentcell = sheet[‘C12’]alignment = openpyxl.styles.Alignment(horizontal=”center”, vertical=”center”, text_rotation=0, wrap_text=True)cell.alignment = alignmentworkbook.save(‘test.xlsx’)

      拆分單元格的方法同上unmerge_cells(待合并的格子編號)unmerge_cells(start_row=起始行號,start_column=起始列號,end_row=結(jié)束行號,end_column=結(jié)束列號)

      sheet表創(chuàng)建新的sheet(create_sheet)

      create_sheet(“新的sheet名”):創(chuàng)建一個新的sheet表

      import osimport openpyxlpath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))workbook.create_sheet(‘3號sheet’) # 創(chuàng)建新的sheet表print(workbook.sheetnames) # 查看所有的sheet表workbook.save(‘test.xlsx’)”’當(dāng)前活動表是:[‘Sheet1’, ‘Sheet2’, ‘3號sheet’]”’

      修改sheet名字(title)

      第11行,使用title修改sheet表的名字

      import osimport openpyxlpath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))sheet.title = ‘1號sheet’ # 修改sheet表workbook.save(‘test.xlsx’)

      復(fù)制sheet表(copy_worksheet)

      在“操作”>“修改單元格、excel另存為”中提到了另存為,其實復(fù)制sheet表就是一個另存為的過程,你要是在12行代碼保存的時候使用第7行的文件名,那么復(fù)制的sheet表就保存到自己身上,內(nèi)容跟copy.xlsx一樣。

      import osimport openpyxlpath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))workbook.copy_worksheet(sheet)# 復(fù)制sheet表workbook.save(‘copy.xlsx’)

      刪除sheet表(remove)

      remove(“sheet名”):刪除某個sheet表要刪除某sheet表,需要激活這個sheet表,即:將其作為活動表(關(guān)于活動表的定義請看前面文章開頭寫的有)下面8~11行代碼展示了原始活動表與手動更換活動表,第13行代碼刪掉活動表

      import osimport openpyxlpath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當(dāng)前活動表是:’ + str(sheet))sheet = workbook[‘3號sheet’] # 手動切換到要刪除的sheet表,一旦切換,這張表就是活動表print(‘當(dāng)前活動表是:’ + str(sheet))workbook.remove(sheet) # 刪除當(dāng)前活動表print(workbook.sheetnames)workbook.save(‘test.xlsx’)”’當(dāng)前活動表是:當(dāng)前活動表是:[‘Sheet1’, ‘Sheet2′]”’

      操作多個Excel表

      背景知識numpy與pandasNumPy是 Python 語言的一個擴(kuò)展程序庫,支持大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學(xué)函數(shù)庫;pandas 是基于NumPy 的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,我們需要利用Pandas進(jìn)行Excel的合并1.下面的代碼生成了一個5行3列的包含15個字符的嵌套列表(注意,第4行代碼:15是等于35的,如果是15對應(yīng)43,或者16對應(yīng)5*3都會報錯)(注意,第5行代碼,雖然5行3列是15個數(shù)據(jù),但是可以指定數(shù)據(jù)從1開頭,到16結(jié)束)

      import numpy as npimport pandas as pdxx = np.arange(15).reshape(5, 3)yy = np.arange(1, 16).reshape(5, 3)print(xx)print(yy)”'[[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11] [12 13 14]][[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12] [13 14 15]]”’

      2.添加表頭使用pandas庫的DataFrame來添加表頭。關(guān)于打印的結(jié)果,把最左側(cè)的一列去掉之后會發(fā)現(xiàn)結(jié)果很和諧,這是因為最左側(cè)的一列代表行號。此時xx變量的類型是

      import numpy as npimport pandas as pdxx = np.arange(15).reshape(5, 3)yy = np.arange(1, 16).reshape(5, 3)xx = pd.DataFrame(xx, columns=[“語文”, “數(shù)學(xué)”, “外語”])yy = pd.DataFrame(yy, columns=[“語文”, “數(shù)學(xué)”, “外語”])print(xx)print(yy)”’結(jié)果: 語文 數(shù)學(xué) 外語0 0 1 21 3 4 52 6 7 83 9 10 114 12 13 14 語文 數(shù)學(xué) 外語0 1 2 31 4 5 62 7 8 93 10 11 124 13 14 15”’

      xlsxwriter

      xlsxwriter模塊一般是和xlrd模塊搭配使用的,xlsxwriter:負(fù)責(zé)寫入數(shù)據(jù),xlrd:負(fù)責(zé)讀取數(shù)據(jù)。1.創(chuàng)建一個工作簿

      import xlsxwriterimport ospath = r”C:UsersasukaDesktop”os.chdir(path)# 這一步相當(dāng)于創(chuàng)建了一個新的”工作簿”;# “demo.xlsx”文件不存在,表示新建”工作簿”;# “demo.xlsx”文件存在,表示新建”工作簿”覆蓋原有的”工作簿”;workbook = xlsxwriter.Workbook(“demo.xlsx”)# close是將”工作簿”保存關(guān)閉,這一步必須有,否則創(chuàng)建的文件無法顯示出來。workbook.close()

      2.創(chuàng)建sheet表

      import xlsxwriterimport ospath = r”C:UsersasukaDesktop”os.chdir(path)workbook = xlsxwriter.Workbook(“cc.xlsx”) # 創(chuàng)建一個名為cc.xlsx的文件worksheet = workbook.add_worksheet(“2018年銷售量”) # 創(chuàng)建一個名為“2018年銷售量”的sheet表workbook.close()

      3.寫入數(shù)據(jù)

      import xlsxwriterimport ospath = r”C:UsersasukaDesktop”os.chdir(path)# 創(chuàng)建一個名為【demo.xlsx】工作簿;workbook = xlsxwriter.Workbook(“demo.xlsx”)# 創(chuàng)建一個名為【2018年銷售量】工作表;worksheet = workbook.add_worksheet(“2018年銷售量”)# 使用write_row方法,為【2018年銷售量】工作表,添加一個表頭;headings = [‘產(chǎn)品’, ‘銷量’, “單價”]worksheet.write_row(‘A1’, headings)# 使用write方法,在【2018年銷售量】工作表中插入一條數(shù)據(jù);# write語法格式:worksheet.write(行,列,數(shù)據(jù))data = [“蘋果”, 500, 8.9]for i in range(len(headings)): worksheet.write(1, i, data[i])workbook.close()

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年7月4日 18:34
      下一篇 2022年7月4日 18:34

      相關(guān)推薦

      • 分享4條發(fā)微商朋友圈的方法(微商朋友圈應(yīng)該怎么發(fā))

        對于微商朋友來說,朋友圈的重要性不言而喻了。 那么微商的朋友圈到底該怎么發(fā)呢? 為什么同樣是經(jīng)營一個朋友圈,有的微商看起來逼格滿滿,實際效果也不錯;而有的卻動都不動就被屏蔽甚至拉黑…

        2022年11月27日
      • 妻子發(fā)微信:“我老公不在,快來”,同事:“下了班就來找你”

        在現(xiàn)如今網(wǎng)絡(luò)如此發(fā)達(dá)的時代,大家可以從各個地方了解到全國大事小事,正所謂世界之大無奇不有,每天都發(fā)生著奇奇怪怪的事情,今天小編突然看到這樣一件事,看完之后都不知道說什么好了。 王某…

        2022年11月26日
      • 《寶可夢朱紫》夢特性怎么獲得?隱藏特性獲取方法推薦

        寶可夢朱紫里有很多寶可夢都是擁有夢特性會變強的寶可夢,很多玩家不知道夢特性怎么獲得,下面就給大家?guī)韺毧蓧糁熳想[藏特性獲取方法推薦,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 …

        2022年11月25日
      • 《寶可夢朱紫》奇魯莉安怎么進(jìn)化?奇魯莉安進(jìn)化方法分享

        寶可夢朱紫中的奇魯莉安要怎么進(jìn)化呢?很多玩家都不知道,下面就給大家?guī)韺毧蓧糁熳掀骠斃虬策M(jìn)化方法分享,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 奇魯莉安進(jìn)化方法分享 奇魯莉安…

        2022年11月25日
      • 《樂隊的海邊》第二場live秀開啟 趙夢為鄭秀妍寫中文歌詞

        今日(11月25日),芒果TV女性經(jīng)營勵志奮斗真人秀《樂隊的海邊》第二期即將上線。張儷、趙夢、鄭秀妍、于文文、劉戀、張?zhí)鞇墼诤D鲜…偤J薪?jīng)營的“炸廚”音樂餐廳蒸蒸日上,收獲顧客滿滿…

        2022年11月25日
      • 自由的工作

        02我國把自由職業(yè)者分為三類第一類是小本生意人,如個體零售店小餐館印刷店裝修公司老板,還有路邊小攤經(jīng)營者第二類是沒有底薪的推銷員,如買保險的人地產(chǎn)經(jīng)紀(jì)房子中介直銷人士,賣卡的人。 …

        2022年11月25日
      • 什么是推廣cpa一篇文章帶你看懂CPA推廣渠道

        CPA渠道 CPA指的是按照指定的行為結(jié)算,可以是搜索,可以是注冊,可以是激活,可以是搜索下載激活,可以是綁卡,實名認(rèn)證,可以是付費,可以是瀏覽等等。甲乙雙方可以根據(jù)自己的情況來定…

        2022年11月25日
      • 抖音直播帶貨有哪些方法技巧(抖音直播帶貨有哪些痛點)

        如今抖音這個短視頻的變現(xiàn)能力越來越突顯了,尤其是在平臺上開通直播,更具有超強的帶貨屬性,已經(jīng)有越來越多的普通人加入到其中了。不過直播帶貨雖然很火,但是也不是每個人都能做好的,那么在…

        2022年11月24日
      • 本人由于個人原因辭職30字(最簡單的個人辭職原因)

        做人留一線,日后好相見!我們不斷地被職場潛規(guī)則著,同時也在制造一些潛規(guī)則,每一個離職理由的背后都有一段難以言說的辛酸!離職的時候如果不想說明真實原因,究竟該怎么說合適呢?1、 想讀…

        2022年11月24日
      • 明查|美國新冠后遺癥患者中有16%癥狀嚴(yán)重以致無法工作?

        點擊進(jìn)入澎湃新聞全球事實核查平臺 速覽 – 網(wǎng)傳數(shù)據(jù)比例無權(quán)威信源佐證,該比例有可能是結(jié)合了美國疾病防控中心和布魯金斯學(xué)會的數(shù)據(jù)得出,但這兩個機(jī)構(gòu)的調(diào)研目的和樣本都不同…

        2022年11月24日

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時間:周一至周五,10:30-18:30,節(jié)假日休息