python-docx包部分記錄
官方文件
結構記錄
這次主要是使用了paragraph和table,就只記錄比較熟悉的部分。
- document:這個是整個文件的物件
- paragraph:承載文字資訊的一個基礎單元
- run:最基本的單元,一個paragraph裡可能包含多個run
- table:表格結構的基本單元
- paragraph:承載文字資訊的一個基礎單元
基礎操作
特別基礎的操作,官方文件裡的範例都有,不在贅述。
改變字型
經常會碰到修改了font.name了,但是字型並沒有改變。
# 這兩行的呼叫需要一塊用上
run.font.name = u"黑體"
run._element.rPr.rFonts.set(qn('w:eastAsia'), u"黑體")
設定字號和影像的大小
需要用到docx.shared裡面的屬性。
from docx.shared import Pt, Cm
run.font.size = Pt(10.5) # 設定字型的磅數
shape = paragraphs.add_run("\n").add_picture(draft_file_path, height=Cm(10.58), width=Cm(14.11))
# 或者是下面的操作
shape.height = Cm(10.58) # 設定影像大小的釐米數
shape.width = Cm(14.11)
給表格加邊框
這個是借鑑別人部落格裡的程式碼,出處有點找不到了。
def set_cell_border(cell, **kwargs):
"""
Set cell`s border
Usage:
set_cell_border(
cell,
top={"sz": 12, "val": "single", "color": "#FF0000", "space": "0"},
bottom={"sz": 12, "color": "#00FF00", "val": "single"},
left={"sz": 24, "val": "dashed", "shadow": "true"},
right={"sz": 12, "val": "dashed"},
)
"""
tc = cell._tc
tcPr = tc.get_or_add_tcPr()
# check for tag existnace, if none found, then create one
tcBorders = tcPr.first_child_found_in("w:tcBorders")
if tcBorders is None:
tcBorders = OxmlElement('w:tcBorders')
tcPr.append(tcBorders)
# list over all available tags
for edge in ('left', 'top', 'right', 'bottom', 'insideH', 'insideV'):
edge_data = kwargs.get(edge)
if edge_data:
tag = 'w:{}'.format(edge)
# check for tag existnace, if none found, then create one
element = tcBorders.find(qn(tag))
if element is None:
element = OxmlElement(tag)
tcBorders.append(element)
# looks like order of attributes is important
for key in ["sz", "val", "color", "space", "shadow"]:
if key in edge_data:
element.set(qn('w:{}'.format(key)), str(edge_data[key]))
# 呼叫
set_cell_border(table2.rows[i].cells[j], top={"sz": 0.5, "val": "single", "color": "#000000", "space": "0"},
bottom={"sz": 0.5, "val": "single", "color": "#000000", "space": "0"},
left={"sz": 0.5, "val": "single", "color": "#000000", "space": "0"},
right={"sz": 0.5, "val": "single", "color": "#000000", "space": "0"})
效果如下圖。
連線sqlsever遇見的中文亂碼問題
關鍵程式碼節選
self.conn = pymssql.connect(host=self.cf['host'], user=self.cf['user'], password=self.cf['pwd'],
database=self.cf['db'], charset='UTF-8')
name = name.encode('latin-1').decode('GBK')
相關文章
- npm包釋出記錄NPM
- Oracle 工具包記錄Oracle
- 面試問題記錄 一 (基礎部分)面試
- Python-docx庫Python
- presto官網閱讀記錄: Functions and Operators 部分RESTFunction
- 記錄Mac下使用Charles抓包Mac
- mikemaccana/python-docxMacPython
- .net 4.8 webApi 檔案下載部分程式碼記錄WebAPI
- java json解析jar包基本使用記錄JavaJSONJAR
- 記錄Laravel開發常用擴充套件包Laravel套件
- 記錄一個 NPM 包的開發 -- smmsNPM
- python-docx 頁面設定Python
- 記錄--如何修改第三方npm包?NPM
- Vue2.x 響應式部分原始碼閱讀記錄Vue原始碼
- oracle實驗記錄 (oracle 10G dataguard(2)引數部分)Oracle
- python-docx操作word文件詳解Python
- 開發問題記錄(這部分還是比較零碎)
- 研究大事記(部分)
- 記錄下學習釋出一個包到npm上NPM
- python-docx處理Word必備工具Python
- [Python] python-docx 編輯word文件Python
- 2019騰訊實習筆試題部分記錄+兩次電話面試筆記筆試面試筆記
- PUTTY 記錄操作記錄
- Python標準庫04 檔案管理 (部分os包,shutil包)Python
- 域名解析的記錄型別:A記錄、CNAME、MX記錄、NS記錄型別
- 一次app抓包引發的Android分析記錄APPAndroid
- mysql二進位制包安裝與配置實戰記錄MySql
- 逆向線上遊戲:建立一個包記錄器和編輯器遊戲
- Git筆記-部分命令Git筆記
- Cookie記錄瀏覽記錄Cookie
- Python標準庫分享之檔案管理 (部分os包,shutil包)Python
- 關鍵字、Package 包的使用、import 的用法 - Go 學習記錄PackageImportGo
- 在Python中呼叫Java擴充套件包HanLP測試記錄PythonJava套件HanLP
- 爬蟲記錄——第三方錢包加密引數逆向爬蟲加密
- 記錄一次pip安裝不了包(換源也不得行)
- Xshell 5 記錄操作記錄
- Python 快速教程(標準庫04):檔案管理 (部分os包,shutil包)Python
- Python 快速教程(標準庫07):訊號 (signal包,部分os包)Python