国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python pywin32實(shí)現(xiàn)word和Excel的處理

這篇具有很好參考價(jià)值的文章主要介紹了Python pywin32實(shí)現(xiàn)word和Excel的處理。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

pywin32處理Word和Excel的一些事

我們知道Python處理word和Excel的可以借助第三庫python-docx、xlrd、xlwt和openpyxl等實(shí)現(xiàn),但這些模塊只支持基本的讀寫操作,如果要實(shí)現(xiàn)一些較為深入功能,就要看模塊是否有相應(yīng)功能支持了。
例如將word和Excel轉(zhuǎn)為pdf,在word和Excel里面執(zhí)行VBA實(shí)現(xiàn)特殊功能,在Excel里面生成數(shù)據(jù)透視表、設(shè)置Excel的頁面設(shè)置等等。
除了使用上述模塊之外,還可以直接使用pywin32實(shí)現(xiàn)word和Excel的操作,其底層原理是通過win32com實(shí)現(xiàn)操作,不過pywin32目前只能在Windows上運(yùn)行,對(duì)linux和macos不太友好,并且電腦必須安裝wps或微軟office,這也是pywin32的一些局限。

pywin32將Word轉(zhuǎn)pdf

pywin32處理Word大多數(shù)用于格式轉(zhuǎn)換,因?yàn)橐话阕x寫操作都可以借助python-docx實(shí)現(xiàn),除非真的有特殊要求,但大部分企業(yè)對(duì)Wrod操作不會(huì)有太多復(fù)雜需求。
廢話不多說,直接上代碼

pythoncom.CoInitialize()
file_path = 'xxxx'
try:
	word = wc.gencache.EnsureDispatch('word.application')
except:
	try:
		word = wc.gencache.EnsureDispatch('kwps.application')  # 如果使用wps
	except:
		word = wc.gencache.EnsureDispatch('wps.application')  # 如果使用wps
newpdf = word.Documents.Open(file_path)
word.Visible = 0
newpdf.SaveAs(f'xxxx.pdf', FileFormat=17)
newpdf.Close()
pythoncom.CoUninitialize()

使用pywin32創(chuàng)建Word對(duì)象可以使用微軟Excel(word.application)或Wps實(shí)現(xiàn)(kwps.application或wps.application),wps的kwps和wps主要是wps版本不同導(dǎo)致的,這個(gè)要看電腦安裝是那個(gè)版本的Wps。
使用win32com調(diào)用com組件的時(shí)候,需要用pythoncom.CoInitialize初始化一下,最后還需要用pythoncom.CoUninitialize釋放資源。

pywin32將Excel格式處理并轉(zhuǎn)pdf

由于pywin32處理Excel沒有相應(yīng)官方文檔說明,也沒有相應(yīng)源碼,那怎辦?實(shí)際上,官方文檔在微軟官方文檔有說明的,打開微軟官方文檔可以發(fā)現(xiàn),文檔是以VBA為主,換句話說,我們需要將VBA代碼轉(zhuǎn)換為Python代碼。
如果不太熟悉VBA代碼,可以打開Excel錄制宏代碼,錄制過程中將用戶操作Excel轉(zhuǎn)換為VBA代碼,如圖所示
Python pywin32實(shí)現(xiàn)word和Excel的處理
關(guān)于Excel設(shè)置開發(fā)者工具,如何錄制VBA代碼這個(gè)自行百度一下了。
然后從VBA代碼在官方文檔找到對(duì)應(yīng)屬性,比如VBA代碼的PageSetup是Excel的頁面設(shè)置,在官方文檔找到PageSetup相關(guān)屬性方法,
按照上述,VBA轉(zhuǎn)換對(duì)應(yīng)Python如下:

from win32com import client as wc

try:
    excel = wc.DispatchEx('Excel.Application')
except:
    try:
        excel = wc.DispatchEx('ket.Application')
    except:
        excel = wc.DispatchEx('et.Application')
newpdf = excel.Workbooks.Open(r'C:\Users\Administrator\Desktop\tt\abc.xls')
excel.DisplayAlerts = 0
# 獲取第一個(gè)sheet
all_sheets = [sheet.Name for sheet in newpdf.Sheets]
ws_source = newpdf.Worksheets(all_sheets[0])
# 設(shè)置頁面設(shè)置
ws_source.PageSetup.LeftHeader = ""
ws_source.PageSetup.CenterHeader = ""
ws_source.PageSetup.RightHeader = ""
ws_source.PageSetup.LeftFooter = ""
ws_source.PageSetup.CenterFooter = ""
ws_source.PageSetup.RightFooter = ""
# ws_source.PageSetup.FitToPagesTall = 0
ws_source.PageSetup.FirstPageNumber = True
ws_source.PageSetup.LeftMargin = 0
ws_source.PageSetup.RightMargin = 0
ws_source.PageSetup.TopMargin = 0
ws_source.PageSetup.BottomMargin = 0
ws_source.PageSetup.HeaderMargin = 0
ws_source.PageSetup.FooterMargin = 0
# ws_source.PageSetup.PaperSize = 1
ws_source.PageSetup.Orientation = 2  # 橫向轉(zhuǎn)換pdf
ws_source.PageSetup.FitToPagesWide = 1  # 所有列壓縮在一頁紙
ws_source.PageSetup.FitToPagesTall = False
ws_source.PageSetup.Zoom = False  # 所有列壓縮在一頁紙
ws_source.PageSetup.CenterVertically = True
ws_source.PageSetup.CenterHorizontally = True
ws_source.PageSetup.Draft = False
ws_source.Select()
# 行列自動(dòng)調(diào)整
# ws_source.Columns.AutoFit()
# ws_source.Rows.AutoFit()
# 設(shè)置Excel的邊框
rows = ws_source.UsedRange.Rows.Count
cols = ws_source.UsedRange.Columns.Count
ws_source.Range(ws_source.Cells(1, 1), ws_source.Cells(rows, cols)).Borders.LineStyle = 1
ws_source.Range(ws_source.Cells(1, 1), ws_source.Cells(rows, cols)).Borders.TintAndShade = 0
ws_source.Range(ws_source.Cells(1, 1), ws_source.Cells(rows, cols)).Borders.Weight = 1
# 轉(zhuǎn)換為PDF文件
newpdf.ExportAsFixedFormat(0, r'C:\Users\Administrator\Desktop\tt\abc.pdf')
newpdf.Close()
excel.Quit()

從Python代碼看到,它與VBA代碼十分相似,也就是說,VBA能實(shí)現(xiàn)的功能,Python也能實(shí)現(xiàn),說明了,編程語言只是工具,不管是什么工具,只要玩的溜就行了。

總結(jié)

從微軟官方文檔看到,VBA還支持office所有軟件,如Access、outlook、ppt等等開發(fā),那么Python使用pywin32也能實(shí)現(xiàn)這些開發(fā)。不管如此,還可以實(shí)現(xiàn)Windows其他功能開發(fā),如自動(dòng)打印功能使用win32print,這都是pywin32模塊。
更多內(nèi)容請(qǐng)關(guān)注公眾號(hào)
Python pywin32實(shí)現(xiàn)word和Excel的處理文章來源地址http://www.zghlxwxcb.cn/news/detail-445078.html

到了這里,關(guān)于Python pywin32實(shí)現(xiàn)word和Excel的處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python word中插入excel文件以圖標(biāo)顯示(win32com調(diào)用vba代碼)

    python word中插入excel文件以圖標(biāo)顯示(win32com調(diào)用vba代碼)

    參考文章:(5條消息) python extension(pywin32) 插入宏到word_hit_liuanhuaming的專欄-CSDN博客 ? 功能需求:在C:UsersuserDesktop20210408-1xxx.docx中插入xxx.xlsx文件以圖標(biāo)顯示,如下圖: ? 1.準(zhǔn)備: 1)python模塊安裝: 2)word啟用宏功能: 文件-選項(xiàng) 信任中心-信任中心設(shè)置 勾選信任對(duì)VBA工程對(duì)象模型

    2023年04月08日
    瀏覽(23)
  • Python的Pywin32庫:簡(jiǎn)化Windows編程的強(qiáng)大工具

    導(dǎo)言: Python是一種功能強(qiáng)大的編程語言,廣泛用于各個(gè)領(lǐng)域。然而,當(dāng)涉及到Windows操作系統(tǒng)的編程時(shí),可能會(huì)遇到一些挑戰(zhàn)。這時(shí),Pywin32庫就派上了用場(chǎng)。Pywin32是一個(gè)開源的Python擴(kuò)展庫,提供了訪問Windows API的接口,使得在Python中進(jìn)行Windows編程變得輕而易舉。本文將介紹

    2024年02月14日
    瀏覽(22)
  • 用python實(shí)現(xiàn)excel表格插入word

    你可以使用Python中的 python-docx 和 openpyxl 庫來實(shí)現(xiàn)將Excel表格插入Word文檔。下面是一個(gè)示例代碼,可以將一個(gè)名為\\\"example.xlsx\\\"的Excel表格插入到一個(gè)名為\\\"example.docx\\\"的Word文檔中: python復(fù)制代碼 import openpyxl from docx import Document # 打開Word文檔 doc = Document(\\\"example.docx\\\") # 打開Excel表格

    2024年01月19日
    瀏覽(28)
  • 【Python】解決pywin32各種常見問題及中英文手冊(cè)下載(詳細(xì))

    【Python】解決pywin32各種常見問題及中英文手冊(cè)下載(詳細(xì))

    目錄 前言 一、中英文手冊(cè)獲取 二、各種常見問題 1. ModuleNotFoundError: No module named \\\'win32xxx\\\' 2.?ImportError:DLL load failed while importing win32xxx: 找不到指定的模塊。 方法一 方法二 方法三 3. pywintypes.error: (2, \\\'XXX\\\', \\\'系統(tǒng)找不到指定的文件。\\\') 總結(jié) pywin32是針對(duì)微軟Windows的Python擴(kuò)展,p

    2024年02月07日
    瀏覽(19)
  • Python實(shí)現(xiàn)Word、Excel、PPT批量轉(zhuǎn)為PDF

    Python實(shí)現(xiàn)Word、Excel、PPT批量轉(zhuǎn)為PDF

    今天看見了一個(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庫中,也方便大家進(jìn)行調(diào)用。 你可以去下載p

    2024年02月10日
    瀏覽(96)
  • Python操作Word:輕松實(shí)現(xiàn)文檔的創(chuàng)建、編輯與自動(dòng)化處理

    引言: 在日常工作和學(xué)習(xí)中,我們經(jīng)常需要使用Microsoft Word來創(chuàng)建、編輯和處理文檔。然而,手動(dòng)操作Word可能會(huì)耗費(fèi)大量的時(shí)間和精力。為了提高工作效率,我們可以使用Python編程語言來操作Word文檔,實(shí)現(xiàn)文檔的自動(dòng)化處理。本文將詳細(xì)介紹如何使用Python操作Word,包括創(chuàng)建

    2024年01月21日
    瀏覽(21)
  • 使用Python的win32com庫實(shí)現(xiàn)對(duì)Word的操作

    win32com庫是Python中的一個(gè)擴(kuò)展庫,它提供了與Microsoft Office應(yīng)用程序進(jìn)行交互的功能。在本篇博客中,我們將重點(diǎn)介紹如何使用win32com庫來操作Word文檔。使用win32com庫可以方便地打開、創(chuàng)建、保存和編輯Word文檔,以及進(jìn)行格式化和布局等操作。 要使用win32com庫,首先需要安裝它

    2024年02月06日
    瀏覽(17)
  • Python 基于win32com客戶端實(shí)現(xiàn)Excel操作

    Python 3.6.2 新建并保存EXCEL 了解更多API,可以查看參考連接 讀取現(xiàn)有EXCEL 說明: 如果不添加以下代碼行: 會(huì)報(bào)錯(cuò),如下: 建議使用 替代 實(shí)踐發(fā)現(xiàn),多線程的情況下,使用 Dispatch 會(huì)出現(xiàn)報(bào)錯(cuò),原因似乎是 Dispatch 若發(fā)現(xiàn)進(jìn)程已經(jīng)存在的話,就不會(huì)創(chuàng)建新的進(jìn)程。若不創(chuàng)建新的

    2024年02月01日
    瀏覽(15)
  • python使用win32com庫實(shí)現(xiàn)對(duì)Excel的操作

    在日常工作中,我們經(jīng)常需要對(duì)Excel文件進(jìn)行操作,例如讀取和寫入數(shù)據(jù)、格式化和樣式、插入和刪除等。而使用Python的win32com庫,我們可以通過代碼來實(shí)現(xiàn)對(duì)Excel的自動(dòng)化操作,提高工作效率和準(zhǔn)確性。 本篇博客將介紹如何使用win32com庫來操作Excel,包括安裝和配置、創(chuàng)建和

    2024年02月14日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包