亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

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

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

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

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

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


                操作

                創(chuàng)建新的excel

                第9行代碼用來指定創(chuàng)建的excel的活動表的名字:·不寫第9行,默認創(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(‘當前活動表是:’ + 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ù)的左側插入

                import osimport openpyxlpath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當前活動表是:’ + 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(‘當前活動表是:’ + 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ù)為向下或向右、負整數(shù)為向左或向上

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

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

                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(‘當前活動表是:’ + 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(‘當前活動表是:’+str(sheet))cell = sheet[‘A1’]font = cell.fontprint(‘當前單元格的字體樣式是’)print(font.name, font.size, font.bold, font.italic, font.color)”’當前活動表是:當前單元格的字體樣式是等線 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進制表示

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

                設置對齊格式

                Alignment(horizontal=水平對齊模式,vertical=垂直對齊模式,text_rotation=旋轉角度,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(‘當前活動表是:’ + 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’)

                當然,你仍舊可以調用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(‘當前活動表是:’ + 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’)

                設置行高列寬

                設置行列的寬高:·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(‘當前活動表是:’ + str(sheet))# 設置第1行的高度sheet.row_dimensions[1].height = 50# 設置B列的卷度sheet.column_dimensions[‘B’].width = 20workbook.save(‘test.xlsx’)

                設置所有單元格(顯示的結果是設置所有,有數(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]] # 選中最左側的sheet表width = 2.0 # 設置寬度height = width * (2.2862 / 0.3612) # 設置高度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=結束行號,end_column=結束列號)

                import osimport openpyxlimport openpyxl.stylespath = r”C:UsersasukaDesktop”os.chdir(path) # 修改工作路徑workbook = openpyxl.load_workbook(‘test.xlsx’) # 返回一個workbook數(shù)據(jù)類型的值sheet = workbook.active # 獲取活動表print(‘當前活動表是:’ + 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=結束行號,end_column=結束列號)

                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(‘當前活動表是:’ + str(sheet))workbook.create_sheet(‘3號sheet’) # 創(chuàng)建新的sheet表print(workbook.sheetnames) # 查看所有的sheet表workbook.save(‘test.xlsx’)”’當前活動表是:[‘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(‘當前活動表是:’ + str(sheet))sheet.title = ‘1號sheet’ # 修改sheet表workbook.save(‘test.xlsx’)

                復制sheet表(copy_worksheet)

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

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

                刪除sheet表(remove)

                remove(“sheet名”):刪除某個sheet表要刪除某sheet表,需要激活這個sheet表,即:將其作為活動表(關于活動表的定義請看前面文章開頭寫的有)下面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(‘當前活動表是:’ + str(sheet))sheet = workbook[‘3號sheet’] # 手動切換到要刪除的sheet表,一旦切換,這張表就是活動表print(‘當前活動表是:’ + str(sheet))workbook.remove(sheet) # 刪除當前活動表print(workbook.sheetnames)workbook.save(‘test.xlsx’)”’當前活動表是:當前活動表是:[‘Sheet1’, ‘Sheet2′]”’

                操作多個Excel表

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

                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來添加表頭。關于打印的結果,把最左側的一列去掉之后會發(fā)現(xiàn)結果很和諧,這是因為最左側的一列代表行號。此時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ù)學”, “外語”])yy = pd.DataFrame(yy, columns=[“語文”, “數(shù)學”, “外語”])print(xx)print(yy)”’結果: 語文 數(shù)學 外語0 0 1 21 3 4 52 6 7 83 9 10 114 12 13 14 語文 數(shù)學 外語0 1 2 31 4 5 62 7 8 93 10 11 124 13 14 15”’

                xlsxwriter

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

                import xlsxwriterimport ospath = r”C:UsersasukaDesktop”os.chdir(path)# 這一步相當于創(chuàng)建了一個新的”工作簿”;# “demo.xlsx”文件不存在,表示新建”工作簿”;# “demo.xlsx”文件存在,表示新建”工作簿”覆蓋原有的”工作簿”;workbook = xlsxwriter.Workbook(“demo.xlsx”)# close是將”工作簿”保存關閉,這一步必須有,否則創(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 = [‘產品’, ‘銷量’, “單價”]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()

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

                相關推薦

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                  2022年11月24日

                聯(lián)系我們

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