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

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
《自動化辦公》Python

雖然Word不好用, 但還必須得用它, python-docx是專門用于編輯Word文檔的一個工具庫, 它有兩大用途, 自動化生成word文檔 and 自動化修改文檔

1. 自定義樣式

python可以自定義三類樣式

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

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

以設置段落樣式為例

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

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

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

實例: 插入段落, 插入段落后追加字符

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

3. 插入圖片

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

實例代碼:

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

4.插入列表

插入有序列表

  1. document.add_paragraph('把冰箱門打開', style='List Number')
  2. document.add_paragraph('把大象裝進去', style='List Number')
  3. document.add_paragraph('把冰箱門關上', style='List Number')
  4. 復制代碼

插入無序列表

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

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. 復制代碼

完整源碼:

  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)建文檔對象
  11. document = Document()
  12. # 設置默認字體
  13. document.styles['Normal'].font.name = '微軟雅黑'
  14. document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '微軟雅黑')
  15. # 創(chuàng)建自定義段落樣式(第一個參數(shù)為樣式名, 第二個參數(shù)為樣式類型, 1為段落樣式, 2為字符樣式, 3為表格樣式)
  16. UserStyle1 = document.styles.add_style('UserStyle1', 1)
  17. # 設置字體尺寸
  18. UserStyle1.font.size = Pt(40)
  19. # 設置字體顏色
  20. UserStyle1.font.color.rgb = RGBColor(0xff, 0xde, 0x00)
  21. # 居中文本
  22. UserStyle1.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
  23. # 設置中文字體
  24. UserStyle1.font.name = '微軟雅黑'
  25. UserStyle1._element.rPr.rFonts.set(qn('w:eastAsia'), '微軟雅黑')
  26. # 創(chuàng)建自定義字符樣式(第一個參數(shù)為樣式名, 第二個參數(shù)為樣式類型, 1為段落樣式, 2為字符樣式, 3為表格樣式)
  27. UserStyle2 = document.styles.add_style('UserStyle2', 2)
  28. # 設置字體尺寸
  29. UserStyle2.font.size = Pt(15)
  30. # 設置字體顏色0c8ac5
  31. UserStyle2.font.color.rgb = RGBColor(0x0c, 0x8a, 0xc5)
  32. # 設置段落樣式為宋體
  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('正月里采花無喲花采,二月間采花花喲正開,二月間采花花喲正開。三月里桃花紅喲似海,四月間葡萄架喲上開,四月間葡萄架喲上開。', style = UserStyle2)
  39. # 設置粗體字
  40. document.add_paragraph('設置粗體字:').add_run('粗體字').bold = True
  41. # 設置斜體字
  42. document.add_paragraph('設置斜體字:').add_run('斜體字').italic = True
  43. # 設置字號50
  44. document.add_paragraph('設置字號50:').add_run('50').font.size = Pt(50)
  45. # 設置字體顏色為 af2626
  46. document.add_paragraph('設置字體顏色:').add_run('顏色').font.color.rgb = RGBColor(0xaf, 0x26, 0x26)
  47. # 樣式疊加: 將字體改到30號并且將字體改成特定顏色;
  48. doubleStyle = document.add_paragraph('同時設置文字顏色和字號:').add_run('顏色和尺寸')
  49. doubleStyle.font.size = Pt(30)
  50. doubleStyle.font.color.rgb = RGBColor(0xaf, 0x26, 0x26)
  51. # 添加分頁符
  52. document.add_page_break()
  53. # 創(chuàng)建 有序列表
  54. document.add_paragraph('').add_run('有序列表').font.size = Pt(30)
  55. document.add_paragraph('把冰箱門打開', style='List Number')
  56. document.add_paragraph('把大象裝進去', style='List Number')
  57. document.add_paragraph('把冰箱門關上', style='List Number')
  58. # 創(chuàng)建 無序列表
  59. document.add_paragraph('').add_run('無序列表').font.size = Pt(30)
  60. document.add_paragraph('天地匆匆 驚鴻而過 路有千百個', style='List Bullet')
  61. document.add_paragraph('遑遑無歸 閑云逸鶴 人間紅塵過', style='List Bullet')
  62. document.add_paragraph('引勢而流 鴻門亂局 各有各選擇', style='List Bullet')
  63. document.add_paragraph('乾震坎艮 坤巽離兌 定一切生克', style='List Bullet')
  64. # 添加分頁符
  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. # 添加分頁符
  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. 復制代碼

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

最終效果:

自動化修改文檔

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

  1. import docx
  2. import os
  3. import re
  4. # 傳入三個參數(shù), 舊字符串, 新字符串, 文件對象
  5. def replace_text(old_text, new_text, file):
  6. # 遍歷文件對象
  7. for f in file.paragraphs:
  8. # 如果 舊字符串 在 某個段落 中
  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. # 獲取當前目錄下所有的文件名列表
  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. # 獲取文件對象
  33. file=docx.Document(docx_file_name)
  34. # 三個參數(shù): 舊的字符串, 新的字符串, 文件對象
  35. print('開始替換:', docx_file_name)
  36. replace_text('海南大學', '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. 復制代碼

關于Python操控PPT:https://www.jianshu.com/p/5b294515b480

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

聯(lián)系客服