西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴(lài)的軟件下載站!
西西首頁(yè) 電腦軟件 安卓軟件 電腦游戲 安卓游戲 排行榜 專(zhuān)題合集

打印excel強(qiáng)制頁(yè)面縱向.exe

Python版
  • 打印excel強(qiáng)制頁(yè)面縱向.exePython版
  • 軟件大小:10.6M
  • 更新時(shí)間:2022-07-27 10:41
  • 軟件語(yǔ)言:中文
  • 軟件廠商:
  • 軟件類(lèi)別:國(guó)產(chǎn)軟件 / 免費(fèi)軟件 / 打印工具
  • 軟件等級(jí):3級(jí)
  • 應(yīng)用平臺(tái):WinAll
  • 官方網(wǎng)站:暫無(wú)
  • 應(yīng)用備案:
好評(píng):50%
壞評(píng):50%

軟件介紹

打印excel強(qiáng)制頁(yè)面縱向.exe是一款Python編寫(xiě)將目標(biāo)文件夾內(nèi)所有的ppt、excel、word快速生成PDF(縱向)小工具,很久之寫(xiě)給公司文員使用的文檔批量生成PDF的Python小應(yīng)用,我們可以橫向打印也可以豎向打印,一鍵搞定。

軟件說(shuō)明

主要為快速的將文件夾內(nèi)的PPT、EXCEL、WORD生成對(duì)應(yīng)的PDF。

PS:印象中如不能轉(zhuǎn)換好像需要安裝有office,成品是寫(xiě)定了為縱向也可以改為橫向或者不設(shè)置。

excel怎么縱向打印

打開(kāi)Excel,//點(diǎn)擊左上角的表格標(biāo)志,點(diǎn)擊打印,然后選擇打印預(yù)覽,//在打印預(yù)覽里有個(gè)對(duì)頁(yè)面橫縱的設(shè)置,點(diǎn)擊橫向,//調(diào)整表格的大小,點(diǎn)擊縮放比例,縮放調(diào)整到大小合適的比例,//接下來(lái)選擇頁(yè)面設(shè)置,點(diǎn)擊頁(yè)邊距,居中方式點(diǎn)擊水平和垂直,設(shè)置完成后整個(gè)表格就能居中了,然后就可以直接打印了。

代碼說(shuō)明

"""

【程序功能】:將【目標(biāo)文件夾】?jī)?nèi)所有的 ppt、excel、word 均生成一份對(duì)應(yīng)的 PDF 文件

【作者】:qzw,提供內(nèi)部使用

【目標(biāo)文件夾】:默認(rèn)為此程序目前所在的文件夾;

                若輸入路徑,則為該文件夾(只轉(zhuǎn)換該層,不轉(zhuǎn)換子文件夾下內(nèi)容)

【生成的pdf名稱(chēng)】:原始名稱(chēng)+.pdf

"""

import os, win32com.client, gc

# Word

def word2Pdf(filePath, words):

    # 如果沒(méi)有文件則提示后直接退出

    if(len(words)<1):

        print ("\n【無(wú) Word 文件】\n")

        return

    # 開(kāi)始轉(zhuǎn)換

    print ("\n【開(kāi)始 Word -> PDF 轉(zhuǎn)換】")

    try:

        print ("打開(kāi) Word 進(jìn)程...")

        word = win32com.client.Dispatch("Word.Application")

        word.Visible = 0

        word.DisplayAlerts = False

        doc = None

        for i in range(len(words)):

            print(i)

            fileName = words[i] # 文件名稱(chēng)

            fromFile = os.path.join(filePath, fileName) # 文件地址

            toFileName = changeSufix2Pdf(fileName) # 生成的文件名稱(chēng)

            toFile = toFileJoin(filePath,toFileName) # 生成的文件地址

            print ("轉(zhuǎn)換:"+fileName+"文件中...")

            # 某文件出錯(cuò)不影響其他文件打印

            try:

                doc = word.Documents.Open(fromFile)

                doc.SaveAs(toFile,17) # 生成的所有 PDF 都會(huì)在 PDF 文件夾中

                print ("轉(zhuǎn)換到:"+toFileName+"完成")

            except Exception as e:

                print(e)

            # 關(guān)閉 Word 進(jìn)程

        print ("所有 Word 文件已打印完畢")

        print ("結(jié)束 Word 進(jìn)程...\n")

        doc.Close()

        doc = None

        word.Quit()

        word = None

    except Exception as e:

        print(e)

    finally:

        gc.collect()

# Excel

def excel2Pdf(filePath, excels):

    # 如果沒(méi)有文件則提示后直接退出

    if(len(excels)<1):

        print ("\n【無(wú) Excel 文件】\n")

        return

    # 開(kāi)始轉(zhuǎn)換

    print ("\n【開(kāi)始 Excel -> PDF 轉(zhuǎn)換】")

    try:

        print ("打開(kāi) Excel 進(jìn)程中...")

        excel = win32com.client.Dispatch("Excel.Application")

        excel.Visible = 0

        excel.DisplayAlerts = False

        wb = None

        ws = None

        for i in range(len(excels)):

            print(i)

            fileName = excels[i] # 文件名稱(chēng)

            fromFile = os.path.join(filePath, fileName) # 文件地址

            print ("轉(zhuǎn)換:"+fileName+"文件中...")

            # 某文件出錯(cuò)不影響其他文件打印

            try:

                wb = excel.Workbooks.Open(fromFile)

                for j in range(wb.Worksheets.Count): # 工作表數(shù)量,一個(gè)工作簿可能有多張工作表

                    toFileName = addWorksheetsOrder(fileName, j+1) # 生成的文件名稱(chēng)

                    toFile = toFileJoin(filePath,toFileName) # 生成的文件地址                    

                    ws = wb.Worksheets(j+1) # 若為[0]則打包后會(huì)提示越界

                    ws.PageSetup.Orientation=2 # 設(shè)置頁(yè)面方向,縱向=1,橫向=2

                    ws.ExportAsFixedFormat(0,toFile) # 每一張都需要打印

                    print ("轉(zhuǎn)換至:"+toFileName+"文件完成")

            except Exception as e:

                print(e)

        # 關(guān)閉 Excel 進(jìn)程

        print ("所有 Excel 文件已打印完畢")

        print ("結(jié)束 Excel 進(jìn)程中...\n")

        ws = None

        wb.Close()

        wb = None

        excel.Quit()

        excel = None

    except Exception as e:

        print(e)

    finally: 

        gc.collect()

# PPT

def ppt2Pdf(filePath, ppts):

    # 如果沒(méi)有文件則提示后直接退出

    if(len(ppts)<1):

        print ("\n【無(wú) PPT 文件】\n")

        return

    # 開(kāi)始轉(zhuǎn)換

    print ("\n【開(kāi)始 PPT -> PDF 轉(zhuǎn)換】")

    try:

        print ("打開(kāi) PowerPoint 進(jìn)程中...")

        powerpoint = win32com.client.Dispatch("PowerPoint.Application")

        ppt = None

        # 某文件出錯(cuò)不影響其他文件打印

        for i in range(len(ppts)):

            print(i)

            fileName = ppts[i] # 文件名稱(chēng)

            fromFile = os.path.join(filePath, fileName) # 文件地址

            toFileName = changeSufix2Pdf(fileName) # 生成的文件名稱(chēng)

            toFile = toFileJoin(filePath,toFileName) # 生成的文件地址

            print ("轉(zhuǎn)換:"+fileName+"文件中...")

            try:

                ppt = powerpoint.Presentations.Open(fromFile,WithWindow=False)

                if ppt.Slides.Count>0:

                    ppt.SaveAs(toFile, 32) # 如果為空則會(huì)跳出提示框(暫時(shí)沒(méi)有找到消除辦法)

                    print ("轉(zhuǎn)換至:"+toFileName+"文件完成")

                else:

                    print("(錯(cuò)誤,發(fā)生意外:此文件為空,跳過(guò)此文件)")

            except Exception as e:

                print(e)

        # 關(guān)閉 PPT 進(jìn)程

        print ("所有 PPT 文件已打印完畢")

        print ("結(jié)束 PowerPoint 進(jìn)程中...\n")

        ppt.Close()

        ppt = None

        powerpoint.Quit()

        powerpoint = None

    except Exception as e:

        print(e)

    finally:

        gc.collect()

# 修改后綴名

def changeSufix2Pdf(file):

    return file[:file.rfind('.')]+".pdf"

# 添加工作簿序號(hào)

def addWorksheetsOrder(file, i):

    return file[:file.rfind('.')]+"_工作表"+str(i)+".pdf"

# 轉(zhuǎn)換地址

def toFileJoin(filePath,file):

    return os.path.join(filePath,'pdf',file[:file.rfind('.')]+".pdf")

# 開(kāi)始程序

print ("====================程序開(kāi)始====================")

print ("【程序功能】將目標(biāo)路徑下內(nèi)所有的 ppt、excel、word 均生成一份對(duì)應(yīng)的 PDF 文件,存在新生成的 pdf 文件夾中(需已經(jīng)安裝office,不包括子文件夾)")

print ("注意:若某 PPT 和 Excel 文件為空,則會(huì)出錯(cuò)跳過(guò)此文件。若轉(zhuǎn)換 PPT 時(shí)間過(guò)長(zhǎng),請(qǐng)查看是否有報(bào)錯(cuò)窗口等待確認(rèn),暫時(shí)無(wú)法徹底解決 PPT 的窗口問(wèn)題。在關(guān)閉進(jìn)程過(guò)程中,時(shí)間可能會(huì)較長(zhǎng),十秒左右,請(qǐng)耐心等待。")

filePath = input ("輸入目標(biāo)路徑:(若為當(dāng)前路徑:"+os.getcwd()+",請(qǐng)直接回車(chē))\n")

# 目標(biāo)路徑,若沒(méi)有輸入路徑則為當(dāng)前路徑

if(filePath==""):

    filePath = os.getcwd()

# 將目標(biāo)文件夾所有文件歸類(lèi),轉(zhuǎn)換時(shí)只打開(kāi)一個(gè)進(jìn)程

words = []

ppts = []

excels = []

for fn in os.listdir(filePath):

    if fn.endswith(('.doc', 'docx')):

        words.append(fn)

    if fn.endswith(('.ppt', 'pptx')):

        ppts.append(fn)

    if fn.endswith(('.xls', 'xlsx')):

        excels.append(fn)

# 調(diào)用方法

print ("====================開(kāi)始轉(zhuǎn)換====================")

# 新建 pdf 文件夾,所有生成的 PDF 文件都放在里面

folder = filePath + '\\pdf\\'

if not os.path.exists(folder):

    os.makedirs(folder)

word2Pdf(filePath,words)

excel2Pdf(filePath,excels)

ppt2Pdf(filePath,ppts)

print ("====================轉(zhuǎn)換結(jié)束====================")

print ("\n====================程序結(jié)束====================")

os.system("pause")

其他版本下載

發(fā)表評(píng)論

昵稱(chēng):
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評(píng)論 > 字?jǐn)?shù): 0/500

TOP
軟件下載