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

打印excel強制頁面縱向.exe

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

軟件介紹

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

軟件說明

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

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

excel怎么縱向打印

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

代碼說明

"""

【程序功能】:將【目標文件夾】內(nèi)所有的 ppt、excel、word 均生成一份對應的 PDF 文件

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

【目標文件夾】:默認為此程序目前所在的文件夾;

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

【生成的pdf名稱】:原始名稱+.pdf

"""

import os, win32com.client, gc

# Word

def word2Pdf(filePath, words):

    # 如果沒有文件則提示后直接退出

    if(len(words)<1):

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

        return

    # 開始轉(zhuǎn)換

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

    try:

        print ("打開 Word 進程...")

        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] # 文件名稱

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

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

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

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

            # 某文件出錯不影響其他文件打印

            try:

                doc = word.Documents.Open(fromFile)

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

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

            except Exception as e:

                print(e)

            # 關閉 Word 進程

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

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

        doc.Close()

        doc = None

        word.Quit()

        word = None

    except Exception as e:

        print(e)

    finally:

        gc.collect()

# Excel

def excel2Pdf(filePath, excels):

    # 如果沒有文件則提示后直接退出

    if(len(excels)<1):

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

        return

    # 開始轉(zhuǎn)換

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

    try:

        print ("打開 Excel 進程中...")

        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] # 文件名稱

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

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

            # 某文件出錯不影響其他文件打印

            try:

                wb = excel.Workbooks.Open(fromFile)

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

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

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

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

                    ws.PageSetup.Orientation=2 # 設置頁面方向,縱向=1,橫向=2

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

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

            except Exception as e:

                print(e)

        # 關閉 Excel 進程

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

        print ("結(jié)束 Excel 進程中...\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):

    # 如果沒有文件則提示后直接退出

    if(len(ppts)<1):

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

        return

    # 開始轉(zhuǎn)換

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

    try:

        print ("打開 PowerPoint 進程中...")

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

        ppt = None

        # 某文件出錯不影響其他文件打印

        for i in range(len(ppts)):

            print(i)

            fileName = ppts[i] # 文件名稱

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

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

            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) # 如果為空則會跳出提示框(暫時沒有找到消除辦法)

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

                else:

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

            except Exception as e:

                print(e)

        # 關閉 PPT 進程

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

        print ("結(jié)束 PowerPoint 進程中...\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"

# 添加工作簿序號

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")

# 開始程序

print ("====================程序開始====================")

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

print ("注意:若某 PPT 和 Excel 文件為空,則會出錯跳過此文件。若轉(zhuǎn)換 PPT 時間過長,請查看是否有報錯窗口等待確認,暫時無法徹底解決 PPT 的窗口問題。在關閉進程過程中,時間可能會較長,十秒左右,請耐心等待。")

filePath = input ("輸入目標路徑:(若為當前路徑:"+os.getcwd()+",請直接回車)\n")

# 目標路徑,若沒有輸入路徑則為當前路徑

if(filePath==""):

    filePath = os.getcwd()

# 將目標文件夾所有文件歸類,轉(zhuǎ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 ("====================開始轉(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")

軟件截圖

打印excel強制頁面縱向.exe Python版

其他版本下載

發(fā)表評論

昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
查看所有(0)條評論 > 字數(shù): 0/500

TOP
軟件下載