>>importopenpyxl#引用openpyxl庫>>>mywb=openpyxl.Workbook()#此時只創建一個工作表>>>mywb.get_sheet_names()#.get_sheet_names()為棄用的函數,警告Warning(fromwarningsmodule):File"__main__",line1Deprecatio" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python處理excel文件

系統 2364 0

python處理excel文件可以使用openpyxl庫。

1.創建和保存excel文件,查看工作表標題:

            
              >>> import openpyxl #引用openpyxl庫
>>> mywb=openpyxl.Workbook() #此時只創建一個工作表
>>> mywb.get_sheet_names() #.get_sheet_names()為棄用的函數,警告

Warning (from warnings module):
  File "__main__", line 1
DeprecationWarning: Call to deprecated function get_sheet_names (Use wb.sheetnames).
['Sheet']
>>> mywb.sheetnames() #不該加括號
Traceback (most recent call last):
  File "
              
                ", line 1, in 
                
                  
    mywb.sheetnames()
TypeError: 'list' object is not callable
>>> mywb.sheetnames #新函數
['Sheet']
>>> sheet=mywb.active
>>> sheet.title #查看工作表標題
'Sheet'
>>> sheet.title='MyNewTitle' #更改工作表標題
>>> mywb.sheetnames
['MyNewTitle']
>>> mywb.save('NewExcelFile.xlsx') #在根目錄下將excel文件保存為NewExcelFile.xlsx
>>> mywb.save('E://desktop/NewExcelFile.xlsx') ##在桌面將excel文件保存為NewExcelFile.xlsx
                
              
            
          

保存文件時磁盤符(C、D、E、F等,大小寫均可) 后面必須跟冒號,斜線或反斜線可添加任意多個或0個,兩文件夾之間至少有一個斜線或反斜線,可無文件名,此時只有后綴。文件格式保存為.xlsx或.xls均可

2.已有excel文件另存:

            
              >>> import openpyxl
>>> mywb=openpyxl.load_workbook('NewExcelFile.xlsx') #載入原有excel文件
>>> sheet=mywb.active
>>> sheet.title='Working on Save as' #修改工作表標題
>>> mywb.save('example_NewExcelFile.xlsx') #在根目錄下另存為'example_NewExcelFile.xlsx'
            
          

3.在excel中創建和刪除工作表:

            
              >>> import openpyxl
>>> mywb=openpyxl.Workbook()
>>> mywb.get_sheet_names()
['Sheet']
>>> mywb.create_sheet() #創建新工作表

              
                
>>> mywb.get_sheet_names()
['Sheet', 'Sheet1']
>>> mywb.create_sheet(index=0,title='1stSheet') #創建新工作表1stSheet并放在最前面

                
                  
>>> mywb.get_sheet_names()
['1stSheet', 'Sheet', 'Sheet1']
>>> mywb.create_sheet(index=2,title='2ndSheet') #創建新工作表1stSheet并放在第3個

                  
                    
>>> mywb.get_sheet_names()
['1stSheet', 'Sheet', '2ndSheet', 'Sheet1']


>>> mywb.remove_sheet(mywb.get_sheet_by_name('1stSheet')) #用棄用的函數刪除工作表彈出警告

Warning (from warnings module):
  File "__main__", line 1
DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]).

Warning (from warnings module):
  File "__main__", line 1
DeprecationWarning: Call to deprecated function remove_sheet (Use wb.remove(worksheet) or del wb[sheetname]).
>>> mywb.remove_sheet(mywb.get_sheet_by_name('Sheet1'))
>>> mywb.get_sheet_names()
['Sheet', '2ndSheet']
>>> mywb.remove_sheet(mywb['1stSheet']) #刪除不存在的工作表會報錯
Traceback (most recent call last):
  File "
                    
                      ", line 1, in 
                      
                        
    mywb.remove_sheet(mywb['1stSheet'])
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\openpyxl\workbook\workbook.py", line 278, in __getitem__
    raise KeyError("Worksheet {0} does not exist.".format(key))
KeyError: 'Worksheet 1stSheet does not exist.'
>>> mywb.remove_sheet(mywb['Sheet'])
>>> mywb.get_sheet_names()
['2ndSheet']
>>> del mywb['2ndSheet'] #新語法刪除工作表
>>> mywb.get_sheet_names() #工作表完全刪除
[]
                      
                    
                  
                
              
            
          

4.單元格寫入數據、公式:

            
              >>> import openpyxl
>>> mywb=openpyxl.Workbook()
>>> mysheet=mywb.get_sheet_by_name('Sheet')
>>> mysheet['F6']="Writing new Value!" #F6單元格寫入
>>> mysheet["f6"].value #單元格索引字母大小寫均可
'Writing new Value!'

>>> import openpyxl
>>> mywb=openpyxl.Workbook()
>>> mysheet=mywb.active
>>> mysheet["F6"]=500
>>> mysheet["F7"]=800
>>> sheet["D3"]='=SUM(F6:F7)' #單元格寫入公式
>>> mywb.save('Applyingformula.xlsx')
            
          

當需要用變量表示單元格時, 可以使用ws.cell(row,column)方式引用,其中列號也使用數字表示,列號的字母數字轉換函數如下:

col_number=openpyxl.utils.column_index_from_string(char)

col_char=openpyxl.unils.get_column_letter(number)

            
              >>> from openpyxl.utils import*
>>> col_number=column_index_from_string('AAA')
>>> col_number
703
>>> col_char=get_column_letter(100)
>>> col_char
'CV'
            
          
            
              >>> from openpyxl import load_workbook
>>> wb=load_workbook('NewExcelFile.xlsx')
>>> wb

              
                
>>> type(wb)

                
                  
>>> ws=wb[wb.sheetnames[0]]
>>> ws

                  
                    
>>> type(ws)

                    
                      
>>> ws['A1']

                      
                        
>>> type(ws['A1'])

                        
                          
>>> ws['A1']=1 #A1單元格賦值
>>> ws['A1'].value
1
>>> ws.cell(1,1)

                          
                            
>>> ws.cell(1,2).value=2 #B1單元格cell()方式賦值
>>> ws.cell(1,2).value #用cell().value查看值
2
                          
                        
                      
                    
                  
                
              
            
          

5.合并和取消合并單元格:

            
              >>> import openpyxl
>>> mywb=openpyxl.Workbook()
>>> mysheet=mywb.active
>>> mysheet.merge_cells('B2:D3') #B2:D3合并,前者為左上角單元格,后者為右下角單元格,合并后的單元格寫入時用左上角的單元格
>>> mysheet['A1']='cells merged together.'
>>> mysheet.merge_cells('F6:F7') #F6:F7合并
>>> mysheet['G5']='Two merged cells.'
>>> mywb.save('Mergingcells.xlsx')

>>> import openpyxl
>>> mywb = openpyxl.load_workbook('Mergingcells.xlsx')
>>> mysheet = mywb.active
>>> mysheet.unmerge_cells('B2:D3') #單元格取消合并
>>> mysheet.unmerge_cells('F6:F7')
>>> mywb.save('unmerged.xlsx') 
            
          

后者為右下角單元格,合并后的單元格寫入時用左上角的單元格。?

6.設置行高列寬:

            
              >>> import openpyxl
>>> mywb = openpyxl.Workbook()
>>> mysheet = mywb.active
>>> mysheet['F6'] = 'Tall row'
>>> mysheet['D7'] = 'Wide column'
>>> mysheet.row_dimensions[3].height = 65 #設置第3行行高為65
>>>mysheet.column_dimensions['F'].width = 25 #設置F列寬為25
>>>mywb.save('Heightandwidth.xlsx')
            
          

默認行高為12.75 points,1 point等于1/72 inch,行高范圍為0-409.

列寬范圍為0-255,可以是整數或浮點數。

行高列寬設為0時,被隱藏。

7.插入與刪除行、列:

            
              ws.insert_rows(n) # 在第n行插入一行
ws.insert_cols(m,n) # 從第m列開始插入n列
ws.delete_cols(m, n) # 從第m列開始,刪除n列
ws.delete_rows(n) # 刪除第n行
            
          

上述兩種方式刪除行(列)后,下(后)面的表格自動上(前)移。

8.行列遍歷:

行列遍歷有兩種方式:

1.ws.max_row獲得表格的最大行數,取得遍歷次數,使用for循環遍歷:

            
              >>>for row in range(2, ws.max_row + 1): # 一般第一行是表頭,所以從2開始,range()不含右邊界
    for cell in row:
        print(cell)
            
          

2.openpyxl中提供了行列生成器(ws.rows和ws.columns),這兩個生成器里面存儲了每一行(列)的數據,每一行由一個tuple包裹,便于對行列進行遍:

            
              >>>for row in ws.rows:
    for cell in row:
        print(cell)
            
          

由于ws.rows或ws.columns是生成器類型,不能直接調用,使用時往往將其轉化未list類型,然后索引遍歷獲得某一行(列)的內容:

            
              >>>for cell in list(ws.rows)[0]: #打印第一行的內容
    print(cell.value)
            
          

此外,還可以使用sheet[行列值: 行列值]來對給定單元格范圍進行遍歷:

            
              >>>for area_date in sheet[‘A1’:’H8’]: #打印A1到H8范圍內的內容
    for cell in area_date:
        print(cell.value)
            
          

9.設置字體:

            
              >>> import openpyxl
>>> from openpyxl.styles import Font, Style
>>> mywb = openpyxl.Workbook()
>>> mysheet = mywb.get_sheet_by_name('Sheet')
>>> italic32Font = Font(size=32, italic=True)
>>> sobj = Style(font=italic32Font)
>>> mysheet['F6'].style = sobj #設置F6單元格樣式為字號32,斜體
>>> mysheet['F6'] = 'Applying Styles!'
>>> mywb.save('Appliedstyle.xlsx')

>>> import openpyxl
>>> from openpyxl.styles import Font, Style
>>> mywb = openpyxl.Workbook()
>>> mysheet = mywb.get_sheet_by_name('Sheet')

>>> firstFontObj = Font(name='Arial', bold=True) #斜體和加粗均為布爾類型
>>> firstStyleObj = Style(font=firstFontObj)
>>> mysheet['F6'].style/firstStyleObj
>>> mysheet['F6'] = 'Bold Arial'

>>> secondFontObj = Font(size=32, italic=True)
>>> secondStyleObj = Style(font=secondFontObj)
>>> mysheet['D7'].style/secondStyleObj
>>> mysheet['D7'] = '32 pt Italic'
>>> mywb.save('ApplicationofStyles.xlsx')
            
          

譯自:Python Excel Writer - Python Excel http://www.pythonexcel.com/python-excel-writer.php

參考:Python利用openpyxl處理Excel文件(單元格及行列具體操作)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久综合久久综合久久综合 | 免费视频大片在线观看 | a毛片视频网站 | 成人午夜精品 | 性色成人网 | 久久欧美精品1024你懂得 | 91精品观看91久久久久久 | 中文线码中文高清播放中 | 色网站综合 | 欧美日韩在线视频观看 | 午夜在线免费观看 | 久操网址 | 国产精品www视频免费看 | 国产真实乱子伦清晰对白 | 亚洲一区二区三 | 亚洲精品国产成人一区二区 | 免费黄色日韩电影 | 日韩精品 电影一区 亚洲 | 成人精品免费视频 | 一区二区中文 | 日韩经典欧美一区二区三区 | 国产一级一级一级成人毛片 | 欧美视频亚洲视频 | 日本高清免费h色视频在线观看 | 精品久久亚洲 | 欧美亚洲专区 | 99在线精品视频在线观看 | 欧美激情视频网站 | 国产精品一区av | 久久久久久国产精品免费免费狐狸 | 久久精品免费观看 | 国产99页 | 亚洲精品欧美一区二区三区 | 国产精品综合色区在线观看 | 日日撸视频 | 快色成人 | 免费乱理伦片在线观看八戒 | 欧美高清视频一区 | 久草热久草视频 | 久久久婷| 妈妈的朋友酷客影响 |