<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Excel中的xls、xlsx、xlsm混合文件,看我用Python如何統(tǒng)一處理......

          共 1936字,需瀏覽 4分鐘

           ·

          2021-02-10 15:22

          ↑?關(guān)注 + 星標(biāo)?,每天學(xué)Python新技能

          后臺(tái)回復(fù)【大禮包】送你Python自學(xué)大禮包

          引言

          Python語言,近幾年在辦公自動(dòng)化這一領(lǐng)域來說,真的超級(jí)火爆!用它做批量處理確實(shí)比VBA要方便很多。

          前面的文章,我們已經(jīng)講述了如何將doc文件轉(zhuǎn)換為docx文件,還沒有觀看的朋友直接戳此鏈接:

          python-docx無法處理 “doc格式” 文件,于是我這樣做......

          今天黃同學(xué)再帶大家探討Python處理Excel文件時(shí),遇到的一些問題。在Python中,有幾個(gè)常用的庫專門用來處理Excel文件,分別是xlrd、xlwt和openpyxl,簡單介紹一下:

          • xlrd只能讀取數(shù)據(jù),可以處理xls和xlsx;
          • xlwt只能寫數(shù)據(jù),只能處理xls;
          • openpyxl可以讀數(shù)據(jù)和寫數(shù)據(jù),但只能處理xlsx;

          如果待處理的文件,既有xls,又有xlsx時(shí),我覺得還是將它們一并轉(zhuǎn)換為統(tǒng)一格式,再進(jìn)行二次修改,顯得更為方便。

          同時(shí),這里還有一種Excel文件,就是xlsm格式,該表格文件卻很少被其他庫支持。這種情況下,如果我們電腦有安裝微軟的Excel軟件(非wps),就可以通過調(diào)用本地excel軟件對表格文件進(jìn)行格式轉(zhuǎn)換,然后我們再進(jìn)行其它操作。

          正文

          再給代碼之前,我仍然給大家講述一些知識(shí)點(diǎn),方便大家一讀就會(huì)。

          • 上一篇文章,由于處理的是Word文檔,因此這里調(diào)用的是Word程序,那處理Excel文檔,這里就需要調(diào)用Excel程序了;
          • 在Python中,文檔用Documents表示,工作簿用Workbooks表示,因此處理不同的文件,我們需要調(diào)用不同的屬性,打開對應(yīng)的文件;
          #?調(diào)用word程序
          WordApp?=?win32com.client.Dispatch("Word.Application")
          #?調(diào)用excel程序
          WordApp?=?win32com.client.Dispatch("Excel.Application")

          #?打開word文檔
          w.Documents.Open(path)
          #?打開Excel工作簿
          w.Workbooks.Open(path)

          #?后臺(tái)運(yùn)行,不顯示,不警告
          WordApp.Visible?=?0
          WordApp.DisplayAlerts?=?0

          Excel文件的格式是最多的,這里我再給大家做一個(gè)總結(jié),給你加深一下印象。

          這里需要強(qiáng)調(diào)一下:后面的代碼里,我們在使用SaveAs保存時(shí),會(huì)用到一個(gè)FileFormat屬性,其中:

          • FileFormat=51,表示xlsx擴(kuò)展文件;
          • FileFormat=56,表示xls擴(kuò)展文件;
          • FileFormat=52,表示xlsm擴(kuò)展文件;
          • FileFormat=23,表示csv擴(kuò)展文件;

          好了,前期準(zhǔn)備知識(shí)講述完畢,這里直接給大家上代碼。

          import?os
          import?time
          import?win32com
          from?win32com.client?import?Dispatch

          def?xls_xlsx(path):
          ???w?=?win32com.client.Dispatch('Excel.Application')
          ???w.Visible?=?0
          ???w.DisplayAlerts?=?0
          ???wb?=?w.Workbooks.Open(path)
          ???#?這里必須要絕對地址,保持和xls路徑一致
          ???newpath?=?allpath+'\\轉(zhuǎn)換后的文檔.xlsx'

          ???wb.SaveAs(newpath,FileFormat?=?51)
          ???#?doc.Close()?開啟則會(huì)刪掉原來的dxls
          ???w.Quit()#?退出
          ???return?newpath
          allpath?=?os.getcwd()
          print(allpath)
          xls_xlsx(allpath+'\\轉(zhuǎn)換前的文檔.xls')

          最終結(jié)果:

          本文講述完畢,代碼附有注釋,相信大家可以看明白,一篇文章總要留給大家一點(diǎn)思考空間,這里就不再過多贅述。

          -------------------?End?-------------------


          見面禮


          碼加我微信備注「三劍客」送你上圖三本Python入門電子書?



          推薦閱讀


          1. 39歲單身程序員入住養(yǎng)老院!養(yǎng)老院:院內(nèi)平均年齡瞬間年輕了

          2. 再見 Win10!下一代操作系統(tǒng)要來了!

          3. 好氣!進(jìn)大廠被學(xué)歷卡住了...

          4. 熬夜一周整理我的數(shù)據(jù)分析學(xué)習(xí)資源


          點(diǎn)分享
          點(diǎn)收藏
          點(diǎn)點(diǎn)贊
          點(diǎn)在看








          瀏覽 77
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美成人在线免费观看 | 影音先锋亚洲无码在线观看 | 福利视频二区 | 欧美爱爱视频免费一级 | 操比123 |