最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實(shí)現(xiàn)word/excel/ppt批量轉(zhuǎn)pdf的示例代碼

 更新時(shí)間:2023年09月05日 08:39:49   作者:夏天是冰紅茶  
這篇文章主要為大家詳細(xì)介紹了如何利用python實(shí)現(xiàn)word、excel、ppt批量轉(zhuǎn)pdf文件,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考下

今天看見了一個(gè)有意思的腳本Python批量實(shí)現(xiàn)Word、EXCLE、PPT轉(zhuǎn)PDF文件。

因?yàn)槲移綍r(shí)word用的比較的多,所以深有體會(huì),具體怎么實(shí)現(xiàn)的我們就不討論了,因?yàn)檫@個(gè)去學(xué)了也沒什么提升,不然也不會(huì)當(dāng)作腳本了。這里我將其放入了pyzjr庫(kù)中,也方便大家進(jìn)行調(diào)用。

你可以去下載pyzjr:

pip install pyzjr -i https://pypi.tuna.tsinghua.edu.cn/simple

調(diào)用方法:

import pyzjr as pz
# 實(shí)例化對(duì)象
Mpdf = pz.Microsoft2PDF()
# 調(diào)用類的方法
Mpdf.Word2Pdf()  # word -> pdf
Mpdf.Excel2Pdf()  # excel -> pdf
Mpdf.PPt2Pdf()  # ppt -> pdf
Mpdf.WEP2Pdf()  # word,excel,ppt -> pdf

上面就是api的調(diào)用了,統(tǒng)一會(huì)將文件存放在目標(biāo)文件夾下新建的名為pdf文件夾中。

pyzjr中的源碼:

import win32com.client, gc, os
class Microsoft2PDF():
    """Convert Microsoft Office documents (Word, Excel, PowerPoint) to PDF format"""
    def __init__(self,filePath = ""):
        """
        :param filePath: 如果默認(rèn)是空字符,就默認(rèn)當(dāng)前路徑
        """
        self.flagW = self.flagE = self.flagP = 1
        self.words = []
        self.ppts = []
        self.excels = []
        if filePath == "":
            filePath = os.getcwd()
        folder = filePath + '\\pdf\\'
        self.folder = CreateFolder(folder,debug=False)
        self.filePath = filePath
        for i in os.listdir(self.filePath):
            if i.endswith(('.doc', 'docx')):
                self.words.append(i)
            if i.endswith(('.ppt', 'pptx')):
                self.ppts.append(i)
            if i.endswith(('.xls', 'xlsx')):
                self.excels.append(i)
        if len(self.words) < 1:
            print("\n[pyzjr]:No Word files\n")
            self.flagW = 0
        if len(self.ppts) < 1:
            print("\n[pyzjr]:No PPT file\n")
            self.flagE = 0
        if len(self.excels) < 1:
            print("\n[pyzjr]:No Excel file\n")
            self.flagP = 0
    def Word2Pdf(self):
        if self.flagW == 0:
            return 0
        else:
            print("\n[Start Word ->PDF conversion]")
            try:
                print("Open Word Process...")
                word = win32com.client.Dispatch("Word.Application")
                word.Visible = 0
                word.DisplayAlerts = False
                doc = None
                for i in range(len(self.words)):
                    print(i)
                    fileName = self.words[i]  # file name
                    fromFile = os.path.join(self.filePath, fileName)  # file address
                    toFileName = self.changeSufix2Pdf(fileName)  # Generated file name
                    toFile = self.toFileJoin(toFileName)  # Generated file address
                    print("Conversion:" + fileName + "in files...")
                    try:
                        doc = word.Documents.Open(fromFile)
                        doc.SaveAs(toFile, 17)
                        print("Convert to:" + toFileName + "file completion")
                    except Exception as e:
                        print(e)
                print("All Word files have been printed")
                print("End Word Process...\n")
                doc.Close()
                doc = None
                word.Quit()
                word = None
            except Exception as e:
                print(e)
            finally:
                gc.collect()
    def Excel2Pdf(self):
        if self.flagE == 0:
            return 0
        else:
            print("\n[Start Excel -> PDF conversion]")
            try:
                print("open Excel Process...")
                excel = win32com.client.Dispatch("Excel.Application")
                excel.Visible = 0
                excel.DisplayAlerts = False
                wb = None
                ws = None
                for i in range(len(self.excels)):
                    print(i)
                    fileName = self.excels[i]
                    fromFile = os.path.join(self.filePath, fileName)
                    print("Conversion:" + fileName + "in files...")
                    try:
                        wb = excel.Workbooks.Open(fromFile)
                        for j in range(wb.Worksheets.Count):  # Number of worksheets, one workbook may have multiple worksheets
                            toFileName = self.addWorksheetsOrder(fileName, j + 1)
                            toFile = self.toFileJoin(toFileName)
                            ws = wb.Worksheets(j + 1)
                            ws.ExportAsFixedFormat(0, toFile)
                            print("Convert to:" + toFileName + "file completion")
                    except Exception as e:
                        print(e)
                # 關(guān)閉 Excel 進(jìn)程
                print("All Excel files have been printed")
                print("Ending Excel process...\n")
                ws = None
                wb.Close()
                wb = None
                excel.Quit()
                excel = None
            except Exception as e:
                print(e)
            finally:
                gc.collect()
    def PPt2Pdf(self):
        if self.flagP == 0:
            return 0
        else:
            print("\n[Start PPT ->PDF conversion]")
            try:
                print("Opening PowerPoint process...")
                powerpoint = win32com.client.Dispatch("PowerPoint.Application")
                ppt = None
                for i in range(len(self.ppts)):
                    print(i)
                    fileName = self.ppts[i]
                    fromFile = os.path.join(self.filePath, fileName)
                    toFileName = self.changeSufix2Pdf(fileName)
                    toFile = self.toFileJoin(toFileName)
                    print("Conversion:" + fileName + "in files...")
                    try:
                        ppt = powerpoint.Presentations.Open(fromFile, WithWindow=False)
                        if ppt.Slides.Count > 0:
                            ppt.SaveAs(toFile, 32)
                            print("Convert to:" + toFileName + "file completion")
                        else:
                            print("Error, unexpected: This file is empty, skipping this file")
                    except Exception as e:
                        print(e)
                print("All PPT files have been printed")
                print("Ending PowerPoint process...\n")
                ppt.Close()
                ppt = None
                powerpoint.Quit()
                powerpoint = None
            except Exception as e:
                print(e)
            finally:
                gc.collect()
    def WEP2Pdf(self):
        """
        Word, Excel and PPt are all converted to PDF.
        If there are many files, it may take some time
        """
        print("Convert Microsoft Three Musketeers to PDF")
        self.Word2Pdf()
        self.Excel2Pdf()
        self.PPt2Pdf()
        print(f"All files have been converted, you can find them in the {self.folder}")
    def changeSufix2Pdf(self,file):
        """將文件后綴更改為.pdf"""
        return file[:file.rfind('.')] + ".pdf"
    def addWorksheetsOrder(self,file, i):
        """在文件名中添加工作表順序"""
        return file[:file.rfind('.')] + "_worksheet" + str(i) + ".pdf"
    def toFileJoin(self, file):
        """將文件路徑和文件名連接為完整的文件路徑"""
        return os.path.join(self.filePath, 'pdf', file[:file.rfind('.')] + ".pdf")

這里我對(duì)原先博主的代碼進(jìn)行了一定的優(yōu)化,使其可供我們調(diào)用。

這是控制臺(tái)打印出來(lái)的信息,我們可以發(fā)現(xiàn)在調(diào)用WEP2Pdf時(shí),如果當(dāng)前文件夾中沒有word的文件也能繼續(xù)去轉(zhuǎn)換。 

到此這篇關(guān)于python實(shí)現(xiàn)word/excel/ppt批量轉(zhuǎn)pdf的示例代碼的文章就介紹到這了,更多相關(guān)python pdf內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ubuntu 18.04 安裝opencv3.4.5的教程(圖解)

    ubuntu 18.04 安裝opencv3.4.5的教程(圖解)

    這篇文章主要介紹了ubuntu 18.04 安裝opencv3.4.5的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python Tkinter Menu控件使用詳解

    Python Tkinter Menu控件使用詳解

    Menu控件(菜單控件)可以說是 GUI 中“精髓所在”,它以可視化的方式將一系列的命令進(jìn)行分組,在每一個(gè)分組下又可以“隱藏”許多的程序執(zhí)行命令(即功能)。本文將詳細(xì)介紹它的使用,需要的可以參考一下
    2022-01-01
  • pandas每次多Sheet寫入文件的方法

    pandas每次多Sheet寫入文件的方法

    今天小編就為大家分享一篇pandas每次多Sheet寫入文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-12-12
  • Python獲取SQLite查詢結(jié)果表列名的方法

    Python獲取SQLite查詢結(jié)果表列名的方法

    這篇文章主要介紹了Python獲取SQLite查詢結(jié)果表列名的方法,涉及Python連接及查詢SQLite數(shù)據(jù)庫(kù)的相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • python字符串分割及字符串的一些常規(guī)方法

    python字符串分割及字符串的一些常規(guī)方法

    這篇文章主要介紹了python字符串分割以及字符串的一些常規(guī)方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 教你在Excel中調(diào)用Python腳本實(shí)現(xiàn)數(shù)據(jù)自動(dòng)化處理的方法

    教你在Excel中調(diào)用Python腳本實(shí)現(xiàn)數(shù)據(jù)自動(dòng)化處理的方法

    Excel是全世界最流行的編程語(yǔ)言,Excel已經(jīng)可以實(shí)現(xiàn)編程語(yǔ)言的算法,因此它是具備圖靈完備性的,和JavaScript、Java、Python一樣,今天通過本文給大家介紹下Python數(shù)據(jù)自動(dòng)化處理的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-02-02
  • Python根據(jù)字符串調(diào)用函數(shù)過程解析

    Python根據(jù)字符串調(diào)用函數(shù)過程解析

    這篇文章主要介紹了Python根據(jù)字符串調(diào)用函數(shù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • python 動(dòng)態(tài)加載的實(shí)現(xiàn)方法

    python 動(dòng)態(tài)加載的實(shí)現(xiàn)方法

    腳本語(yǔ)言都有一個(gè)優(yōu)點(diǎn),就是動(dòng)態(tài)加載,python也有這個(gè)特性。這篇文章主要介紹了python 動(dòng)態(tài)加載的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-12-12
  • 基于python+selenium自動(dòng)健康打卡的實(shí)現(xiàn)代碼

    基于python+selenium自動(dòng)健康打卡的實(shí)現(xiàn)代碼

    這篇文章主要介紹了基于python+selenium自動(dòng)健康打卡,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 一文講清Python中文件路徑的基本概念與操作方法

    一文講清Python中文件路徑的基本概念與操作方法

    這篇文章主要為大家詳細(xì)介紹了Python中文件路徑的基本概念與操作方法,其中文件路徑主要分為絕對(duì)路徑(從根目錄開始)和相對(duì)路徑(相對(duì)于當(dāng)前工作目錄),感興趣的小伙伴可以了解下
    2026-04-04

最新評(píng)論

舟山市| 贞丰县| 上栗县| 韩城市| 罗城| 鲜城| 无为县| 左云县| 贡嘎县| 安塞县| 胶南市| 万全县| 岑溪市| 辽宁省| 广丰县| 吴桥县| 项城市| 宁城县| 乐至县| 海淀区| 咸宁市| 皮山县| 隆回县| 高阳县| 泸定县| 通州区| 新民市| 治县。| 东辽县| 安丘市| 汉源县| 乌苏市| 普定县| 仁布县| 阜新| 姜堰市| 云梦县| 黑水县| 张家川| 沂水县| 张掖市|