-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 營銷推廣 > 專題列表 > 正文
python輸出word文檔(Python輸出Word文檔代碼)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于python輸出word文檔的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,有小程序、在線網(wǎng)頁版、PC客戶端和批量生成器
問友Ai官網(wǎng):https://ai.de1919.com。
本文目錄:
如何用python讀取excel生成word文檔
word文件轉(zhuǎn)html有兩種格式可選wdFormatHTML、wdFormatFilteredHTML(對(duì)應(yīng)數(shù)字8、10),區(qū)別是如果是wdFormatHTML格式的話word文件里面的公式等ole對(duì)象將會(huì)存儲(chǔ)成wmf格式,而選用wdFormatFilteredHTML的話公式圖片將存儲(chǔ)為gif格式,而且目測可以看出用wdFormatFilteredHTML生成的HTML明顯比wdFormatHTML要干凈許多。
Python代碼保存到word?
我們可以借助某些編輯器將代碼高亮的性質(zhì),然后將代碼復(fù)制到其中,并將其截圖保存到word里面,就比如說我們使用工具sublime text,我們把代碼復(fù)制到里面如下所示。
然后再將該代碼截圖保存,就可以插入到word里面,并且看著非常舒服。希望可以幫助到你。
python輸出word內(nèi)容
程序?qū)С鰓ord文檔的方法將web/html內(nèi)容導(dǎo)出為world文檔,再java中有很多解決方案,比如使用Jacob、Apache POI、Java2Word、iText等各種方式,以及使用freemarker這樣的模板引擎這樣的方式。php中也有一些相應(yīng)的方法,但在python中將web/html內(nèi)容生成world文檔的方法是很少的。其中最不好解決的就是如何將使用js代碼異步獲取填充的數(shù)據(jù),圖片導(dǎo)出到word文檔中。
1. unoconv
功能:
1.支持將本地html文檔轉(zhuǎn)換為docx格式的文檔,所以需要先將網(wǎng)頁中的html文件保存到本地,再調(diào)用unoconv進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換效果也不錯(cuò),使用方法非常簡單。
\# 安裝
sudo apt-get install unoconv
\# 使用
unoconv -f pdf *.odt
unoconv -f doc *.odt
unoconv -f html *.odt
缺點(diǎn):
1.只能對(duì)靜態(tài)html進(jìn)行轉(zhuǎn)換,對(duì)于頁面中有使用ajax異步獲取數(shù)據(jù)的地方也不能轉(zhuǎn)換(主要是要保證從web頁面保存下來的html文件中有數(shù)據(jù))。
2.只能對(duì)html進(jìn)行轉(zhuǎn)換,如果頁面中有使用echarts,highcharts等js代碼生成的圖片,是無法將這些圖片轉(zhuǎn)換到word文檔中;
3.生成的word文檔內(nèi)容格式不容易控制。
2. python-docx
功能:
1.python-docx是一個(gè)可以讀寫word文檔的python庫。
使用方法:
1.獲取網(wǎng)頁中的數(shù)據(jù),使用python手動(dòng)排版添加到word文檔中。
from docx import Document
from docx.shared import Inches
document = Document()
document.add_heading('Document Title', 0)
p = document.add_paragraph('A plain paragraph having some ')
p.add_run('bold').bold = True
p.add_run(' and some ')
p.add_run('italic.').italic = True
document.add_heading('Heading, level 1', level=1)
document.add_paragraph('Intense quote', style='IntenseQuote')
document.add_paragraph(
'first item in unordered list', style='ListBullet'
)
document.add_paragraph(
'first item in ordered list', style='ListNumber'
)
document.add_picture('monty-truth.png', width=Inches(1.25))
table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for item in recordset:
row_cells = table.add_row().cells
row_cells[0].text = str(item.qty)
row_cells[1].text = str(item.id)
row_cells[2].text = item.desc
document.add_page_break()
document.save('demo.docx')
from docx import Document
from docx.shared import Inches
document = Document()
for row in range(9):
t = document.add_table(rows=1,cols=1,style = 'Table Grid')
t.autofit = False #很重要!
w = float(row) / 2.0
t.columns[0].width = Inches(w)
document.save('table-step.docx')
缺點(diǎn):
1.功能非常弱。有很多限制比如不支持模板等,只能生成簡單格式的word文檔。
程序?qū)С鯬DF文檔方法
1.pdfkit
功能:
1.wkhtmltopdf主要用于HTML生成PDF。
2.pdfkit是基于wkhtmltopdf的python封裝,支持URL,本地文件,文本內(nèi)容到PDF的轉(zhuǎn)換,其最終還是調(diào)用wkhtmltopdf命令。是目前接觸到的python生成pdf效果較好的。
優(yōu)點(diǎn):
1.wkhtmltopdf:利用webkit內(nèi)核將HTML轉(zhuǎn)為PDF
webkit是一個(gè)高效、開源的瀏覽器內(nèi)核,包括Chrome和Safari在內(nèi)的瀏覽器都使用了這個(gè)內(nèi)核。Chrome打印當(dāng)前網(wǎng)頁的功能,其中有一個(gè)選項(xiàng)就是直接“保存為 PDF”。
2.wkhtmltopdf使用webkit內(nèi)核的PDF渲染引擎來將HTML頁面轉(zhuǎn)換為PDF。高保真,轉(zhuǎn)換質(zhì)量很好,且使用非常簡單。
使用方法:
\# 安裝
pip install pdfkit
\# 使用
import pdfkit
pdfkit.from_url('', 'out.pdf')
pdfkit.from_file('test.html', 'out.pdf')
pdfkit.from_string('Hello!', 'out.pdf')
缺點(diǎn):
1.對(duì)使用echarts,highcharts這樣的js代碼生成的圖標(biāo)無法轉(zhuǎn)換為pdf(因?yàn)樗墓δ苤饕菍tml轉(zhuǎn)換為pdf,而不是將js轉(zhuǎn)換為pdf)。對(duì)于純靜態(tài)頁面的轉(zhuǎn)換效果還是不錯(cuò)的。
2.其他
其他生成pdf的插件還有:weasyprint,reportlab,PyPDF2等,經(jīng)簡單試驗(yàn)都不如pdfkit效果好,且有些用法復(fù)雜。
以上就是關(guān)于python輸出word文檔相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
happybirthday花體字可復(fù)制(happybirthday花體字可復(fù)制的文案)
自動(dòng)論文生成器(自動(dòng)論文生成器 python)
舞臺(tái)Vi設(shè)計(jì)(舞臺(tái)設(shè)計(jì)logo)