免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
《自動(dòng)化辦公》Python

雖然Word不好用, 但還必須得用它, python-docx是專門(mén)用于編輯Word文檔的一個(gè)工具庫(kù), 它有兩大用途, 自動(dòng)化生成word文檔 and 自動(dòng)化修改文檔

1. 自定義樣式

python可以自定義三類樣式

  • 段落樣式
  • 字符樣式
  • 表格樣式(一般用不到)

這三類樣式的創(chuàng)建方式基本一致, 只是創(chuàng)建參數(shù) 略有不同(1為段落樣式, 2為字符樣式, 3為表格樣式)

以設(shè)置段落樣式為例

  1. # 創(chuàng)建自定義段落樣式(第一個(gè)參數(shù)為樣式名, 第二個(gè)參數(shù)為樣式類型, 1為段落樣式, 2為字符樣式, 3為表格樣式)
  2. UserStyle1 = document.styles.add_style('UserStyle1', 1)
  3. # 設(shè)置字體尺寸
  4. UserStyle1.font.size = Pt(40)
  5. # 設(shè)置字體顏色
  6. UserStyle1.font.color.rgb = RGBColor(0xff, 0xde, 0x00)
  7. # 居中文本
  8. UserStyle1.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
  9. # 設(shè)置中文字體
  10. UserStyle1.font.name = '微軟雅黑'
  11. UserStyle1._element.rPr.rFonts.set(qn('w:eastAsia'), '微軟雅黑')
  12. 復(fù)制代碼

2.理解結(jié)構(gòu)關(guān)系

  • 往文檔中插入文本內(nèi)容, 首先要插入一個(gè)段落, 段落后面可追加字符, 但文檔不能直接插入字符
  • 段落之間會(huì)自動(dòng)以 回車符號(hào) 分隔
  • 段落 和 字符 可 各自設(shè)置獨(dú)立的樣式

實(shí)例: 插入段落, 插入段落后追加字符

  1. # 使用自定義段落樣式
  2. document.add_paragraph('自定義段落樣式', style = UserStyle1)
  3. # 使用自定義字符樣式
  4. document.add_paragraph('').add_run('正月里采花無(wú)喲花采,二月間采花花喲正開(kāi),二月間采花花喲正開(kāi)。三月里桃花紅喲似海,四月間葡萄架喲上開(kāi),四月間葡萄架喲上開(kāi)。', style = UserStyle2)
  5. 復(fù)制代碼

3. 插入圖片

python-docx支持將圖片插入文檔, 且可以設(shè)置圖片大小

實(shí)例代碼:

  1. document.add_picture('少女17087938.jpg', width=Inches(5))
  2. 復(fù)制代碼

4.插入列表

插入有序列表

  1. document.add_paragraph('把冰箱門(mén)打開(kāi)', style='List Number')
  2. document.add_paragraph('把大象裝進(jìn)去', style='List Number')
  3. document.add_paragraph('把冰箱門(mén)關(guān)上', style='List Number')
  4. 復(fù)制代碼

插入無(wú)序列表

  1. document.add_paragraph('天地匆匆 驚鴻而過(guò) 路有千百個(gè)', style='List Bullet')
  2. document.add_paragraph('遑遑?zé)o歸 閑云逸鶴 人間紅塵過(guò)', style='List Bullet')
  3. document.add_paragraph('引勢(shì)而流 鴻門(mén)亂局 各有各選擇', style='List Bullet')
  4. document.add_paragraph('乾震坎艮 坤巽離兌 定一切生克', style='List Bullet')
  5. 復(fù)制代碼

5.插入表格

把表格看做二維數(shù)組, 然后往數(shù)組中填數(shù)據(jù)

  1. rows_num = 5
  2. cols_num = 6
  3. table = document.add_table(rows=rows_num, cols=cols_num, style = 'Table Grid')
  4. for r in range(rows_num):
  5. for c in range(cols_num):
  6. table.cell(r, c).text = '第{r}行{c}列'.format(r = r+1, c = c+1)
  7. 復(fù)制代碼

完整源碼:

  1. from docx import Document
  2. from docx.shared import Inches
  3. from docx.dml.color import ColorFormat
  4. from docx.shared import Pt
  5. from docx.shared import RGBColor
  6. from docx.oxml.ns import qn
  7. from docx.enum.style import WD_STYLE_TYPE
  8. from docx.enum.text import WD_ALIGN_PARAGRAPH
  9. def main():
  10. # 創(chuàng)建文檔對(duì)象
  11. document = Document()
  12. # 設(shè)置默認(rèn)字體
  13. document.styles['Normal'].font.name = '微軟雅黑'
  14. document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '微軟雅黑')
  15. # 創(chuàng)建自定義段落樣式(第一個(gè)參數(shù)為樣式名, 第二個(gè)參數(shù)為樣式類型, 1為段落樣式, 2為字符樣式, 3為表格樣式)
  16. UserStyle1 = document.styles.add_style('UserStyle1', 1)
  17. # 設(shè)置字體尺寸
  18. UserStyle1.font.size = Pt(40)
  19. # 設(shè)置字體顏色
  20. UserStyle1.font.color.rgb = RGBColor(0xff, 0xde, 0x00)
  21. # 居中文本
  22. UserStyle1.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
  23. # 設(shè)置中文字體
  24. UserStyle1.font.name = '微軟雅黑'
  25. UserStyle1._element.rPr.rFonts.set(qn('w:eastAsia'), '微軟雅黑')
  26. # 創(chuàng)建自定義字符樣式(第一個(gè)參數(shù)為樣式名, 第二個(gè)參數(shù)為樣式類型, 1為段落樣式, 2為字符樣式, 3為表格樣式)
  27. UserStyle2 = document.styles.add_style('UserStyle2', 2)
  28. # 設(shè)置字體尺寸
  29. UserStyle2.font.size = Pt(15)
  30. # 設(shè)置字體顏色0c8ac5
  31. UserStyle2.font.color.rgb = RGBColor(0x0c, 0x8a, 0xc5)
  32. # 設(shè)置段落樣式為宋體
  33. UserStyle2.font.name = '宋體'
  34. UserStyle2._element.rPr.rFonts.set(qn('w:eastAsia'), '宋體')
  35. # 使用自定義段落樣式
  36. document.add_paragraph('自定義段落樣式', style = UserStyle1)
  37. # 使用自定義字符樣式
  38. document.add_paragraph('').add_run('正月里采花無(wú)喲花采,二月間采花花喲正開(kāi),二月間采花花喲正開(kāi)。三月里桃花紅喲似海,四月間葡萄架喲上開(kāi),四月間葡萄架喲上開(kāi)。', style = UserStyle2)
  39. # 設(shè)置粗體字
  40. document.add_paragraph('設(shè)置粗體字:').add_run('粗體字').bold = True
  41. # 設(shè)置斜體字
  42. document.add_paragraph('設(shè)置斜體字:').add_run('斜體字').italic = True
  43. # 設(shè)置字號(hào)50
  44. document.add_paragraph('設(shè)置字號(hào)50:').add_run('50').font.size = Pt(50)
  45. # 設(shè)置字體顏色為 af2626
  46. document.add_paragraph('設(shè)置字體顏色:').add_run('顏色').font.color.rgb = RGBColor(0xaf, 0x26, 0x26)
  47. # 樣式疊加: 將字體改到30號(hào)并且將字體改成特定顏色;
  48. doubleStyle = document.add_paragraph('同時(shí)設(shè)置文字顏色和字號(hào):').add_run('顏色和尺寸')
  49. doubleStyle.font.size = Pt(30)
  50. doubleStyle.font.color.rgb = RGBColor(0xaf, 0x26, 0x26)
  51. # 添加分頁(yè)符
  52. document.add_page_break()
  53. # 創(chuàng)建 有序列表
  54. document.add_paragraph('').add_run('有序列表').font.size = Pt(30)
  55. document.add_paragraph('把冰箱門(mén)打開(kāi)', style='List Number')
  56. document.add_paragraph('把大象裝進(jìn)去', style='List Number')
  57. document.add_paragraph('把冰箱門(mén)關(guān)上', style='List Number')
  58. # 創(chuàng)建 無(wú)序列表
  59. document.add_paragraph('').add_run('無(wú)序列表').font.size = Pt(30)
  60. document.add_paragraph('天地匆匆 驚鴻而過(guò) 路有千百個(gè)', style='List Bullet')
  61. document.add_paragraph('遑遑?zé)o歸 閑云逸鶴 人間紅塵過(guò)', style='List Bullet')
  62. document.add_paragraph('引勢(shì)而流 鴻門(mén)亂局 各有各選擇', style='List Bullet')
  63. document.add_paragraph('乾震坎艮 坤巽離兌 定一切生克', style='List Bullet')
  64. # 添加分頁(yè)符
  65. document.add_page_break()
  66. # 添加圖片
  67. document.add_paragraph('').add_run('添加圖片').font.size = Pt(30)
  68. document.add_picture('少女17087938.jpg', width=Inches(5))
  69. # 添加分頁(yè)符
  70. document.add_page_break()
  71. document.add_paragraph('').add_run('創(chuàng)建表格').font.size = Pt(30)
  72. # 創(chuàng)建兩行兩列的表格
  73. rows_num = 5
  74. cols_num = 6
  75. table = document.add_table(rows=rows_num, cols=cols_num, style = 'Table Grid')
  76. for r in range(rows_num):
  77. for c in range(cols_num):
  78. table.cell(r, c).text = '第{r}行{c}列'.format(r = r+1, c = c+1)
  79. # 保存文檔
  80. document.save('Python生成的文檔.docx')
  81. if __name__ == '__main__':
  82. main()
  83. 復(fù)制代碼

將源碼保存為單獨(dú)的python文件后,安裝python-docx, 找一張圖片,命名為少女17087938.jpg, 將圖片與python文件放到同一個(gè)目錄, 然后再python3環(huán)境下運(yùn)行python文件即可! 最后附測(cè)試圖片一張:

最終效果:

自動(dòng)化修改文檔

實(shí)例: 將當(dāng)前目錄下, 所有docx文件內(nèi)的'海南大學(xué)', 替換為'Hainan University', 并將新文件添加前綴new后, 保存到當(dāng)前目錄下

  1. import docx
  2. import os
  3. import re
  4. # 傳入三個(gè)參數(shù), 舊字符串, 新字符串, 文件對(duì)象
  5. def replace_text(old_text, new_text, file):
  6. # 遍歷文件對(duì)象
  7. for f in file.paragraphs:
  8. # 如果 舊字符串 在 某個(gè)段落 中
  9. if old_text in f.text:
  10. print('替換前:', f.text)
  11. # 將段落存入 inline
  12. inline = f.runs
  13. # 遍歷 段落 生成 i
  14. for i in inline:
  15. # 如果 舊字符串 在 i 中
  16. if old_text in i.text:
  17. # 替換 i.text 內(nèi)文本資源
  18. text = i.text.replace(old_text, new_text)
  19. i.text = text
  20. print('替換后===>', f.text)
  21. def main():
  22. # 獲取當(dāng)前目錄下所有的文件名列表
  23. old_file_names = os.listdir()
  24. # 獲取所有docx文件名列表
  25. docx_file_names = []
  26. for old_file_name in old_file_names:
  27. if re.match(r'^[^~].*\.docx', old_file_name):
  28. print(old_file_name)
  29. docx_file_names.append(old_file_name)
  30. for docx_file_name in docx_file_names:
  31. try:
  32. # 獲取文件對(duì)象
  33. file=docx.Document(docx_file_name)
  34. # 三個(gè)參數(shù): 舊的字符串, 新的字符串, 文件對(duì)象
  35. print('開(kāi)始替換:', docx_file_name)
  36. replace_text('海南大學(xué)', 'Hainan University', file)
  37. file.save('new_'+docx_file_name)
  38. print(docx_file_name, '替換成功')
  39. except:
  40. print(docx_file_name, '替換失敗')
  41. pass
  42. if __name__ == '__main__':
  43. main()
  44. 復(fù)制代碼

關(guān)于Python操控PPT:https://www.jianshu.com/p/5b294515b480

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python 進(jìn)階(七): Word 基本操作
第105天: Python 操作 Word
教你怎么使用Python對(duì)word文檔進(jìn)行操作
用 python 來(lái)操作 docx, xlsx 格式文件(二)(使用 docx 庫(kù)操作 docx 格式文件
用Python讀寫(xiě)word文檔
【實(shí)用篇】Python操作word
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服