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

2021-02-14 數據分析與統計學之美
引言

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

前面的文章,我們已經講述了如何將doc文件轉換為docx文件,還沒有觀看的朋友直接戳此連結:

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

openpyxl可以讀數據和寫數據,但只能處理xlsx;

如果待處理的文件,既有xls,又有xlsx時,我覺得還是將它們一併轉換為統一格式,再進行二次修改,顯得更為方便。

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

正文

再給代碼之前,我仍然給大家講述一些知識點,方便大家一讀就會。

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

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

# 後臺運行,不顯示,不警告
WordApp.Visible = 0
WordApp.DisplayAlerts = 0

Excel文件的格式是最多的,這裡我再給大家做一個總結,給你加深一下印象。

這裡需要強調一下:後面的代碼裡,我們在使用SaveAs保存時,會用到一個FileFormat屬性,其中:

FileFormat=51,表示xlsx擴展文件;FileFormat=52,表示xlsm擴展文件;

好了,前期準備知識講述完畢,這裡直接給大家上代碼。

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+'\\轉換後的文檔.xlsx'

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

最終結果:

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

我要鼓勵黃同學原創

相關焦點

  • 敲黑板,表格後綴xls、xlsx、xlsb、xlsm、csv分別是什麼意思?
    小夥伴們在日常工作中見過各種奇形怪狀的表格,有xls格式的,也有xlsx/xlsm/xlsb格式的,也有csv格式的,同樣是電子表格,它們之間有什麼差異嗎?今天我們就來說說它們之間的異同點。可以的說xls格式文件是Excel進化史上的一個產物,現如今基本被xlsx所替代,但仍有不少企業使用Excel2003(出於成本的目的)。
  • n種方式教你用python讀寫excel等數據文件
    點擊上方「濤哥聊Python」,選擇「星標」公眾號重磅乾貨,第一時間送達來源:Python大數據分析python處理數據文件的途徑有很多種,可以操作的文件類型主要包括文本文件(csv、txt、json等)、excel
  • n種方式教你用Python讀寫Excel等數據文件
    內存不夠時使用,一般不太用readlines()   :一次性讀取整個文件內容,並按行返回到list,方便我們遍歷2. 內置模塊csvpython內置了csv模塊用於讀寫csv文件,csv是一種逗號分隔符文件,是數據科學中最常見的數據存儲格式之一。csv模塊能輕鬆完成各種體量數據的讀寫操作,當然大數據量需要代碼層面的優化。
  • 詳解Python操作Excel文件
    前言本篇文章主要總結了一下利用python操作Excel文件的第三方庫和方法。常見庫簡介1.xlrdxlrd是一個從Excel文件讀取數據和格式化信息的庫,支持.xls以及.xlsx文件。地址:http://docs.xlwings.org/en/stable/index.html4、強大的轉換器可以處理大部分數據類型,包括在兩個方向上的numpy array和pandas DataFrame。5.openpyxlopenpyxl是一個用於讀取和編寫Excel 2010 xlsx/xlsm/xltx/xltm文件的庫。
  • python-docx無法處理 「doc格式」 文件,於是我這樣做......
    問題引入目前的日常工作中,見的最多的還是對Excel文件和 Word文件的處理。
  • 三種方法高效讀取xls/xlsx格式文件
    今天來學習下怎麼將xls/xlsx格式文件中的數據導入到R中。主要介紹三種方式。下面讀取的數據文件默認放置於工作目錄中。從剪切板讀取數據xls/xlsx文件不同於txt、csv文件,需要使用其他的方式讀取。首先對於小樣本數據,可以打開Excel文件,將需要讀取的數據複製到剪切板,然後使用read.table()函數讀取剪切板中的數據即可。
  • Python 數據處理(十九)—— Excel
    Python 數據處理(十九)Excel 文件read_excel() 方法可以使用 openpyxl 模塊讀取 Excel 2007+(.xlsx)文件可以使用 xlrd 讀取 Excel 2003(.xls)文件。
  • Python利用openpyxl處理excel文件(openpyxl的安裝及簡介)
    $B$3:$A$30000, 1, FALSE), " ", ""),"")), ""),我相信大多數人要想理解這個公式,是很需要一段時間的,面對這種繁雜的公式,一般人肯定是力不從心的。但是試想,如果把上述excel公式變成諸如python中的if-else結構,其可讀性肯定是不容置疑的……今天,我們來介紹一款excel處理利器—openpyxl(python庫文件)。
  • 如何從excel中讀取多個工作表
    近期有學員學習《python文本分析:從入門到到精通》第四部分時,後臺問如果要處理的excel數據是含有多個sheet表,我們該怎麼處理。
  • Excel小白講解Excel3大常用的文件類型
    >如果你把xlsx文件的數據存儲成xls文件,就可能會出現超出部分被截取掉,強烈建議使用xlsx文件格式,哪你如果我的軟體版本是2003,怎麼打開xlsx文件呢?將xls轉化成xlsx就簡單多了,只需將文件在新版本的軟體中打開,選擇另存為,選擇xlsx文件類型,只是部分樣式可能會丟失,需要重新調整。如何鑑別的你選擇的文件是xls還是xlsx呢?  1.  高版本中打開文件,然後按ctrl + ?
  • 14-用Python 讀寫 Excel 文件
    2007 XLSX 和 XLSM 文件直接通過 COM 組件與Microsoft Excel 進程通信,調用其各種功能實現對 Excel 文件的操作讀❌✅✅✅寫✅✅✅✅修改❌❌⚠️✅.xls❌✅❌✅.xlsx✅⚠️✅✅大文件✅❌✅❌功能強弱一般超強速度快快快超慢系統無限制無限制無限制Windows + Excel使用場景要創建 XLSX 文件不需要讀取已有文件需要實現比較複雜的功能
  • MATLAB處理Excel文件提升篇
    如有問題,希望路過本文的人能夠給我留言或者發郵件跟我交流。如果發現錯誤也請及時指正,我將十分感激!想說一下我自己MATLAB M語言使用的進展階段。最初使用的時候只是當做一個超級計算器使用,那是在大學的時候。後來工作中用到文件處理,慢慢就開始變成了腳本。而我理解的腳本含義就是毫無拘束,隨便堆砌的一堆命令或者語句組合成的文件。
  • 巧用python win32com模塊操作excel文件
    Python操作excel文件的第三方庫有很多,小爬就常用openPyxl庫來操作已有的excel文件,它對xlsx、xlsm等格式的支持都較好
  • Excel文件另類操作,如何用Python中xlrd模塊獲取電子表格的信息
    前面內容,我們介紹了Python使用openpyxl模塊對Excel文件進行操作的一些案例。喜歡的小夥伴可以關注我,看下往期的內容。今天,我們來詳細了解下Python處理Excel文件的另外一種模塊xlrd模塊。
  • 氣象編程 | 使用python操作Excel文件
    python操作Excel的庫有很多,大概有xlrd、xlwt、openpyxl、XlsxWriter、xlutils、pandas等。這些庫的操作對xls和xlsx的支持不同,有個只可以操作xls,有的只可以進行讀操作。我選用的庫是openpyxl,支持對xlsx的讀寫操作。
  • Excel文件格式到底有幾種?每種格式又各有啥用途?一文說透
    那麼這些格式有什麼區別以及如何根據自己的需求更改默認的保存格式呢?今天我們就一起來了解一下吧!2.xlsxxlsx的核心結構是XML類型結構,採用了XML的壓縮方式,使其佔用的空間更小,xlsx中最後一個x的意義就在於此,它是Excel2007版本的文件。新建Excel表格默認保存的後綴名為「.xlsx」。
  • Python使用xlrd和xlwt讀寫Excel的簡單用法
    因此用Python 進行數據相關的工作時,難免要和 Excel 打交道。標準的 Excel 文件(xls/xlsx)具有較複雜的格式,並不方便像普通文本文件一樣直接進行讀寫,需要藉助第三方庫來實現。常用的庫是 python-excel 系列:xlrd、xlwt、xlutils它們有個缺陷,就是只能處理 xls 文件。如果你想用新版本的 xlsx,可以考慮 openpyxl 和 xlsxwriter。
  • 基於Python實現對各種數據文件的操作
    常見的數據文件類型如下:txtcsvexcel(xls\xlsx)在線網頁數據pdf\word其他數據軟體格式1 txt文件更多參考:https://docs.python.org/3/tutorial/inputoutput.html
  • 如何將多個Excel文件瞬間合併成一個Sheet頁
    ,如何合併在一個Sheet頁中呢?2.做調查時,設計好填報模板,填報了幾百甚至上千份Excel文件,而且這些文件中,excel版本又不相同,既有「.xls」,也有「.xlsx」,如何瞬間合併在一個Sheet頁中呢?
  • 【校園雜工】Python腳本處理檔案圖片之完結篇:Python處理Excel
    這是一個系列的文章,這是第三篇,前兩篇的連結如下:【校園雜工】Python腳本處理檔案圖片之一【校園雜工】Python腳本處理檔案圖片之二任務描述給定一個文件夾,其中有大量圖片(沒有子文件夾)需要做的是:圖片處理在前面兩篇文章裡,我們已經學習了用內置庫 os提供的方法遍歷該文件夾下所有的圖片,並利用 pillow模塊提供的類和方法得到所有圖片的縮略圖