亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python自動(dòng)化Office文檔處理全攻略

 更新時(shí)間:2025年02月25日 15:02:07   作者:傻啦嘿喲  
在日常辦公中,處理Word、Excel和PDF等Office文檔是再常見(jiàn)不過(guò)的任務(wù),手動(dòng)操作這些文檔不僅耗時(shí)耗力,還容易出錯(cuò),幸運(yùn)的是,Python提供了豐富的庫(kù),使得自動(dòng)化處理這些文檔變得輕松高效,本文將通過(guò)通俗易懂的表達(dá)方式,帶你領(lǐng)略Python自動(dòng)化Office文檔處理的魅力

一、自動(dòng)化處理Word文檔

1. 安裝python-docx庫(kù)

python-docx是一個(gè)強(qiáng)大的庫(kù),可以讀取、修改和創(chuàng)建Word文檔。在開(kāi)始之前,你需要確保已經(jīng)安裝了該庫(kù)。你可以通過(guò)以下命令安裝:

pip install python-docx

2. 讀取Word文檔內(nèi)容

讀取Word文檔內(nèi)容非常簡(jiǎn)單,你可以逐段讀取文檔中的文字。以下是一個(gè)示例代碼:

from docx import Document
 
# 打開(kāi)一個(gè)Word文檔
doc = Document('example.docx')
 
# 遍歷文檔中的段落并打印內(nèi)容
for paragraph in doc.paragraphs:
    print(paragraph.text)

這段代碼會(huì)打開(kāi)名為example.docx的文檔,并逐段打印其內(nèi)容。

3. 修改Word文檔內(nèi)容

python-docx同樣允許你修改文檔內(nèi)容。例如,你可以替換文檔中的特定詞語(yǔ):

from docx import Document
 
# 打開(kāi)一個(gè)Word文檔
doc = Document('example.docx')
 
# 遍歷段落并替換特定詞語(yǔ)
for paragraph in doc.paragraphs:
    if 'old_word' in paragraph.text:
        new_text = paragraph.text.replace('old_word', 'new_word')
        paragraph.text = new_text
 
# 保存修改后的文檔
doc.save('modified_example.docx')

這段代碼會(huì)將文檔中的所有old_word替換為new_word,并保存為新的文檔。

4. 添加新的段落和文字

你還可以向文檔中添加新的段落和文字:

from docx import Document
 
# 打開(kāi)一個(gè)Word文檔
doc = Document('example.docx')
 
# 添加一個(gè)新的段落
new_paragraph = doc.add_paragraph()
 
# 在新段落里添加文字
new_paragraph.add_run('This is a new paragraph added by Python.')
 
# 保存修改后的文檔
doc.save('modified_example.docx')

這段代碼會(huì)在文檔的末尾添加一個(gè)新的段落,并寫(xiě)入指定的文字。

5. 實(shí)戰(zhàn)案例:批量調(diào)整Word樣式

如果你有多個(gè)Word文檔需要統(tǒng)一調(diào)整字體、字號(hào)、段落格式等樣式,python-docx可以大顯身手。以下是一個(gè)批量調(diào)整Word樣式的示例代碼:

import os
from docx import Document
 
# 定義調(diào)整樣式的函數(shù)
def adjust_word_style(file_path):
    doc = Document(file_path)
    for paragraph in doc.paragraphs:
        for run in paragraph.runs:
            run.font.name = 'Times New Roman'  # 設(shè)置字體
            run.font.size = 12  # 設(shè)置字號(hào)
        paragraph.paragraph_format.line_spacing = 1.5  # 設(shè)置行距
    doc.save(file_path)
 
# 指定文件夾路徑
folder_path = 'your_folder_path'  # 替換為你的文件夾路徑
 
# 遍歷文件夾中的所有文件
for file_name in os.listdir(folder_path):
    if file_name.endswith('.docx'):
        file_path = os.path.join(folder_path, file_name)
        adjust_word_style(file_path)

這段代碼會(huì)遍歷指定文件夾中的所有.docx文件,并統(tǒng)一調(diào)整其樣式。

二、自動(dòng)化處理Excel文檔

1. 安裝openpyxl和pandas庫(kù)

openpyxl和pandas是處理Excel文檔的兩大利器。你可以通過(guò)以下命令安裝它們:

pip install openpyxl pandas

2. 使用openpyxl讀取和修改Excel文件

openpyxl可以輕松讀取和修改Excel文件。以下是一個(gè)示例代碼:

import openpyxl
 
# 加載現(xiàn)有的Excel文件
workbook = openpyxl.load_workbook('example.xlsx')
 
# 選擇工作表
sheet = workbook.active
 
# 讀取單元格值
cell_value = sheet['A1'].value
print(f"單元格 A1 的值是: {cell_value}")
 
# 修改單元格值
sheet['A1'] = "新的值"
 
# 保存修改后的文件
workbook.save('modified_example.xlsx')

這段代碼會(huì)打開(kāi)名為example.xlsx的Excel文件,讀取A1單元格的值,將其修改為“新的值”,并保存為新的文件。

3. 使用pandas讀取、清洗和保存Excel數(shù)據(jù)

pandas在處理Excel數(shù)據(jù)時(shí)更加靈活和強(qiáng)大。以下是一個(gè)使用pandas讀取、清洗和保存Excel數(shù)據(jù)的示例代碼:

import pandas as pd
 
# 讀取Excel文件
data = pd.read_excel('data.xlsx')
 
# 查看前五行數(shù)據(jù)
print(data.head())
 
# 數(shù)據(jù)清洗:刪除空值
data = data.dropna()
 
# 數(shù)據(jù)篩選:選擇特定列
selected_columns = data[['Name', 'Age']]
 
# 數(shù)據(jù)排序
sorted_data = data.sort_values(by='Age', ascending=False)
 
# 保存處理后的數(shù)據(jù)到新的Excel文件
sorted_data.to_excel('cleaned_data.xlsx', index=False)

這段代碼會(huì)讀取名為data.xlsx的Excel文件,刪除空值,選擇Name和Age兩列,按Age列降序排序,并將處理后的數(shù)據(jù)保存為新的Excel文件。

4. 實(shí)戰(zhàn)案例:數(shù)據(jù)提取與匯總

從一個(gè)復(fù)雜的Excel表格中提取特定的數(shù)據(jù)并進(jìn)行匯總計(jì)算是常見(jiàn)的任務(wù)。以下是一個(gè)從銷(xiāo)售數(shù)據(jù)表格中提取每個(gè)月的銷(xiāo)售額總和的示例代碼:

import openpyxl
 
# 加載Excel工作簿
wb = openpyxl.load_workbook('sales_data.xlsx')
 
# 選擇工作表
sheet = wb.active
 
# 初始化一個(gè)字典來(lái)存儲(chǔ)每個(gè)月的銷(xiāo)售額
monthly_sales = {}
 
# 遍歷表格中的行(假設(shè)第一行是標(biāo)題行)
for row in range(2, sheet.max_row + 1):
    month = sheet.cell(row=row, column=2).value  # 假設(shè)月份在第二列
    sales_amount = sheet.cell(row=row, column=3).value  # 假設(shè)銷(xiāo)售額在第三列
    if month in monthly_sales:
        monthly_sales[month] += sales_amount
    else:
        monthly_sales[month] = sales_amount
 
# 打印每個(gè)月的銷(xiāo)售額總和
for month, sales in monthly_sales.items():
    print(f"{month}: {sales}")

這段代碼會(huì)讀取名為sales_data.xlsx的Excel文件,提取每個(gè)月的銷(xiāo)售額總和,并打印出來(lái)。

三、自動(dòng)化處理PDF文檔

1. 安裝PyPDF2和pdfplumber庫(kù)

PyPDF2和pdfplumber是處理PDF文檔的兩大工具。你可以通過(guò)以下命令安裝它們:

pip install PyPDF2 pdfplumber

2. 使用PyPDF2讀取和合并PDF文件

PyPDF2可以讀取PDF文件的內(nèi)容、獲取文件頁(yè)數(shù)、提取指定頁(yè)的內(nèi)容以及合并多個(gè)PDF文件。以下是一個(gè)示例代碼:

import PyPDF2
 
# 打開(kāi)PDF文件
with open('example.pdf', 'rb') as file:
    reader = PyPDF2.PdfFileReader(file)
 
# 獲取PDF文件的頁(yè)數(shù)
num_pages = reader.getNumPages()
print(f"PDF 文件有 {num_pages} 頁(yè)")
 
# 提取第一頁(yè)的內(nèi)容
page = reader.getPage(0)
text = page.extractText()
print(f"第一頁(yè)的內(nèi)容是:\n{text}")
 
# 創(chuàng)建新的PDF文件
writer = PyPDF2.PdfFileWriter()
for i in range(num_pages):
    page = reader.getPage(i)
    writer.addPage(page)
 
with open('new_example.pdf', 'wb') as output_file:
    writer.write(output_file)
print("新的 PDF 文件已保存")

這段代碼會(huì)打開(kāi)名為example.pdf的PDF文件,提取第一頁(yè)的內(nèi)容并打印出來(lái),然后創(chuàng)建一個(gè)包含所有頁(yè)的新PDF文件。

3. 使用pdfplumber更準(zhǔn)確地提取PDF文本

相比PyPDF2,pdfplumber在提取PDF文本時(shí)更加準(zhǔn)確。以下是一個(gè)使用pdfplumber提取PDF文本內(nèi)容的示例代碼:

import pdfplumber
 
# 打開(kāi)PDF文件
with pdfplumber.open('example.pdf') as pdf:
    # 獲取PDF文件的頁(yè)數(shù)
    num_pages = len(pdf.pages)
    print(f"PDF 文件有 {num_pages} 頁(yè)")
 
    # 提取第一頁(yè)的內(nèi)容
    first_page = pdf.pages[0]
    text = first_page.extract_text()
 
    print(f"第一頁(yè)的內(nèi)容是:\n{text}")

實(shí)戰(zhàn)案例:批量提取PDF中的表格數(shù)據(jù)

在處理包含表格數(shù)據(jù)的PDF文件時(shí),pdfplumber能夠準(zhǔn)確地提取表格內(nèi)容。以下是一個(gè)批量提取指定文件夾中所有PDF文件的表格數(shù)據(jù)的示例代碼:

import os
import pdfplumber
 
指定文件夾路徑
folder_path = 'your_pdf_folder_path' # 替換為你的文件夾路徑
output_data = []
 
遍歷文件夾中的所有文件
for file_name in os.listdir(folder_path):
if file_name.endswith('.pdf'):
file_path = os.path.join(folder_path, file_name)
 
# 打開(kāi)PDF文件
    with pdfplumber.open(file_path) as pdf:
        # 假設(shè)每個(gè)PDF文件只有一頁(yè)包含表格數(shù)據(jù)
        page = pdf.pages[0]  # 根據(jù)實(shí)際情況調(diào)整頁(yè)碼
        
        # 提取表格
        table = page.extract_table()
        
        # 將表格數(shù)據(jù)添加到輸出列表中(可以根據(jù)需要調(diào)整數(shù)據(jù)結(jié)構(gòu))
        output_data.append({
            'file_name': file_name,
            'table_data': table
        })
打印或保存提取的表格數(shù)據(jù)
for item in output_data:
print(f"文件名: {item['file_name']}")
for row in item['table_data']:
print(row)
print("\n")
 
如果需要保存為Excel文件,可以使用pandas的DataFrame和to_excel方法
import pandas as pd
df = pd.DataFrame(output_data_reformatted) # 需要根據(jù)實(shí)際情況調(diào)整數(shù)據(jù)結(jié)構(gòu)以適應(yīng)DataFrame
df.to_excel('extracted_tables.xlsx', index=False)

注意:在實(shí)際應(yīng)用中,可能需要調(diào)整代碼以適應(yīng)不同PDF文件的表格結(jié)構(gòu)和數(shù)據(jù)格式。此外,如果PDF文件中的表格跨越多頁(yè),需要相應(yīng)地修改代碼以遍歷所有相關(guān)頁(yè)面。

通過(guò)本文的介紹,你已經(jīng)掌握了使用Python自動(dòng)化處理Word、Excel和PDF文檔的基本方法。這些技能將極大地提高你的辦公效率,減少手動(dòng)操作的錯(cuò)誤率。隨著你對(duì)這些庫(kù)和工具的深入了解,還可以探索更多高級(jí)功能,以滿足更復(fù)雜的文檔處理需求。

以上就是Python自動(dòng)化Office文檔處理全攻略的詳細(xì)內(nèi)容,更多關(guān)于Python自動(dòng)化Office處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python創(chuàng)建數(shù)字列表的示例

    Python創(chuàng)建數(shù)字列表的示例

    今天小編就為大家分享一篇Python創(chuàng)建數(shù)字列表的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Python辦公自動(dòng)化之將任意文件轉(zhuǎn)為PDF格式

    Python辦公自動(dòng)化之將任意文件轉(zhuǎn)為PDF格式

    這種把某個(gè)文件轉(zhuǎn)為pdf枯燥無(wú)聊的工作,既沒(méi)有什么技術(shù)含量又累. 今天辰哥就教大家將任意文件批量轉(zhuǎn)為PDF,這里以日常辦公的word、excel、ppt為例,這三種格式的文件轉(zhuǎn)為PDF.需要的朋友可以參考下
    2021-06-06
  • python基于pyppeteer制作PDF文件

    python基于pyppeteer制作PDF文件

    這篇文章主要介紹了python基于pyppeteer制作PDF文件的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python必備技巧之Pandas數(shù)據(jù)合并函數(shù)

    Python必備技巧之Pandas數(shù)據(jù)合并函數(shù)

    Pandas中一共有五個(gè)數(shù)據(jù)合并函數(shù),分別為:concat、append、merge、join、combine,本文詳細(xì)講解這五個(gè)函數(shù)的使用方法,需要的可以參考一下
    2022-03-03
  • 基于Python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生點(diǎn)名系統(tǒng)

    基于Python實(shí)現(xiàn)簡(jiǎn)單的學(xué)生點(diǎn)名系統(tǒng)

    現(xiàn)在的學(xué)生大部分都很積極,會(huì)主動(dòng)舉手回答問(wèn)題。但是,也會(huì)遇到一些不好的情況,比如年級(jí)越高主動(dòng)舉手的人越少,所以本文做了一個(gè)隨機(jī)的學(xué)生點(diǎn)名系統(tǒng)可以幫老師解決這些問(wèn)題
    2022-09-09
  • python爬蟲(chóng)看看虎牙女主播中誰(shuí)最“頂”步驟詳解

    python爬蟲(chóng)看看虎牙女主播中誰(shuí)最“頂”步驟詳解

    這篇文章主要介紹了python爬蟲(chóng)看看虎牙女主播中誰(shuí)最“頂”,本文分步驟通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 用python的requests第三方模塊抓取王者榮耀所有英雄的皮膚實(shí)例

    用python的requests第三方模塊抓取王者榮耀所有英雄的皮膚實(shí)例

    下面小編就為大家分享一篇用python的requests第三方模塊抓取王者榮耀所有英雄的皮膚實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨想過(guò)來(lái)看看吧
    2017-12-12
  • Scrapy框架爬取西刺代理網(wǎng)免費(fèi)高匿代理的實(shí)現(xiàn)代碼

    Scrapy框架爬取西刺代理網(wǎng)免費(fèi)高匿代理的實(shí)現(xiàn)代碼

    今天小編就為大家分享一篇關(guān)于Scrapy框架爬取西刺代理網(wǎng)免費(fèi)高匿代理的實(shí)現(xiàn)代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • Django配置文件代碼說(shuō)明

    Django配置文件代碼說(shuō)明

    在本篇文章里小編給大家整理了關(guān)于Django配置文件代碼說(shuō)明知識(shí)點(diǎn),有需要的朋友們學(xué)習(xí)下。
    2019-12-12
  • Python list與NumPy array 區(qū)分詳解

    Python list與NumPy array 區(qū)分詳解

    這篇文章主要介紹了Python list與NumPy array 區(qū)分詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評(píng)論