最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python自動化操作Excel/Word/PDF的實戰(zhàn)指南

 更新時間:2025年09月09日 09:09:19   作者:HappyAcmen  
在現(xiàn)代辦公環(huán)境中,我們經(jīng)常需要處理各種文檔格式,如Excel表格、Word文檔和PDF文件,下面我們就來看看如何使用Python自動化進(jìn)行相關(guān)操作吧

在現(xiàn)代辦公環(huán)境中,我們經(jīng)常需要處理各種文檔格式,如Excel表格、Word文檔和PDF文件。手動處理這些文檔不僅耗時,而且容易出錯。Python提供了多個強(qiáng)大的庫來實現(xiàn)文檔處理的自動化,本文將重點介紹如何使用openpyxl和docx庫來操作Excel和Word文檔,并簡要介紹PDF處理的方法。

一、Python操作Excel:openpyxl庫

1. 安裝openpyxl

pip install openpyxl

2. 基本操作

創(chuàng)建工作簿和工作表

from openpyxl import Workbook

# 創(chuàng)建工作簿
wb = Workbook()

# 獲取默認(rèn)激活的工作表
ws = wb.active

# 設(shè)置工作表標(biāo)題
ws.title = "員工數(shù)據(jù)"

# 創(chuàng)建新工作表
ws1 = wb.create_sheet("部門統(tǒng)計")  # 插入在最后
ws2 = wb.create_sheet("薪資匯總", 0)  # 插入在第一個位置

# 保存工作簿
wb.save("公司數(shù)據(jù).xlsx")

讀取和寫入數(shù)據(jù)

from openpyxl import load_workbook

# 加載現(xiàn)有工作簿
wb = load_workbook('公司數(shù)據(jù).xlsx')

# 選擇工作表
ws = wb['員工數(shù)據(jù)']

# 寫入數(shù)據(jù)
ws['A1'] = '員工ID'
ws['B1'] = '姓名'
ws['C1'] = '部門'
ws['D1'] = '薪資'

# 批量寫入數(shù)據(jù)
data = [
    [1, '張三', '技術(shù)部', 15000],
    [2, '李四', '市場部', 12000],
    [3, '王五', '財務(wù)部', 13000],
    [4, '趙六', '技術(shù)部', 16000]
]

for row in data:
    ws.append(row)

# 讀取數(shù)據(jù)
for row in ws.iter_rows(min_row=2, max_row=5, values_only=True):
    print(f"員工{row[1]} 在{row[2]}部門,薪資為{row[3]}")

# 保存更改
wb.save('公司數(shù)據(jù).xlsx')

高級功能:公式、樣式和圖表

from openpyxl.styles import Font, Alignment, PatternFill
from openpyxl.chart import BarChart, Reference

# 設(shè)置標(biāo)題行樣式
bold_font = Font(bold=True, size=12)
fill = PatternFill(fill_type="solid", fgColor="DDDDDD")
align_center = Alignment(horizontal="center")

for cell in ws[1]:
    cell.font = bold_font
    cell.fill = fill
    cell.alignment = align_center

# 添加公式計算平均薪資
ws['E1'] = '平均薪資'
ws['E2'] = '=AVERAGE(D2:D5)'

# 創(chuàng)建圖表
chart = BarChart()
chart.title = "部門薪資對比"
chart.x_axis.title = "員工"
chart.y_axis.title = "薪資"

data = Reference(ws, min_col=4, min_row=1, max_row=5)
categories = Reference(ws, min_col=2, min_row=2, max_row=5)
chart.add_data(data, titles_from_data=True)
chart.set_categories(categories)

ws.add_chart(chart, "G2")

wb.save('公司數(shù)據(jù)_增強(qiáng).xlsx')

二、Python操作Word:python-docx庫

1. 安裝python-docx

pip install python-docx

2. 基本操作

創(chuàng)建文檔和添加內(nèi)容

from docx import Document
from docx.shared import Inches, Pt
from docx.enum.text import WD_ALIGN_PARAGRAPH

# 創(chuàng)建新文檔
doc = Document()

# 添加標(biāo)題
doc.add_heading('公司季度報告', 0)

# 添加段落
p = doc.add_paragraph('本季度公司業(yè)績表現(xiàn)良好,各部門均完成了既定目標(biāo)。')
p.add_run('特別是技術(shù)部門').bold = True
p.add_run(',超額完成了項目開發(fā)任務(wù)。')

# 添加二級標(biāo)題
doc.add_heading('部門業(yè)績詳情', level=2)

# 添加表格
table = doc.add_table(rows=1, cols=3)
table.style = 'Table Grid'

# 設(shè)置表頭
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '部門'
hdr_cells[1].text = '目標(biāo)完成率'
hdr_cells[2].text = '同比增長'

# 添加數(shù)據(jù)
data = [
    ['技術(shù)部', '120%', '15%'],
    ['市場部', '95%', '8%'],
    ['財務(wù)部', '100%', '5%']
]

for dept, rate, growth in data:
    row_cells = table.add_row().cells
    row_cells[0].text = dept
    row_cells[1].text = rate
    row_cells[2].text = growth

# 添加分頁符
doc.add_page_break()

# 添加另一個章節(jié)
doc.add_heading('下一步計劃', level=2)
doc.add_paragraph(
    '1. 擴(kuò)大技術(shù)團(tuán)隊規(guī)模', style='List Number'
)
doc.add_paragraph(
    '2. 開拓新市場', style='List Number'
)
doc.add_paragraph(
    '3. 優(yōu)化財務(wù)管理流程', style='List Number'
)

# 保存文檔
doc.save('季度報告.docx')

讀取和修改現(xiàn)有文檔

from docx import Document

# 打開現(xiàn)有文檔
doc = Document('季度報告.docx')

# 讀取內(nèi)容
full_text = []
for paragraph in doc.paragraphs:
    full_text.append(paragraph.text)

print('\n'.join(full_text))

# 修改內(nèi)容
for paragraph in doc.paragraphs:
    if '技術(shù)部門' in paragraph.text:
        paragraph.text = paragraph.text.replace('技術(shù)部門', '研發(fā)中心')

# 保存修改后的文檔
doc.save('季度報告_修改版.docx')

三、Python操作PDF

1. 常用PDF處理庫

  • PyPDF2:用于拆分、合并、裁剪和轉(zhuǎn)換PDF頁面
  • pdfminer:用于提取PDF中的文本和元數(shù)據(jù)
  • ReportLab:用于創(chuàng)建PDF文檔
  • pdfkit:將HTML轉(zhuǎn)換為PDF(基于wkhtmltopdf)

2. 基本PDF操作示例

合并PDF文件

import PyPDF2

def merge_pdfs(paths, output):
    pdf_writer = PyPDF2.PdfWriter()
    
    for path in paths:
        pdf_reader = PyPDF2.PdfReader(path)
        for page in range(len(pdf_reader.pages)):
            pdf_writer.add_page(pdf_reader.pages[page])
    
    with open(output, 'wb') as out:
        pdf_writer.write(out)

# 使用示例
merge_pdfs(['file1.pdf', 'file2.pdf'], 'merged.pdf')

提取PDF文本

from pdfminer.high_level import extract_text

text = extract_text('document.pdf')
print(text)

四、實戰(zhàn)案例:自動化生成報告

下面是一個綜合案例,演示如何從Excel讀取數(shù)據(jù),然后生成Word報告和PDF報告。

from openpyxl import load_workbook
from docx import Document
import pdfkit

# 1. 從Excel讀取數(shù)據(jù)
wb = load_workbook('公司數(shù)據(jù).xlsx')
ws = wb.active

dept_data = {}
for row in ws.iter_rows(min_row=2, values_only=True):
    dept = row[2]
    salary = row[3]
    if dept not in dept_data:
        dept_data[dept] = {
            'count': 0,
            'total_salary': 0,
            'max_salary': 0
        }
    
    dept_data[dept]['count'] += 1
    dept_data[dept]['total_salary'] += salary
    if salary > dept_data[dept]['max_salary']:
        dept_data[dept]['max_salary'] = salary

# 計算平均薪資
for dept in dept_data:
    dept_data[dept]['avg_salary'] = dept_data[dept]['total_salary'] / dept_data[dept]['count']

# 2. 生成Word報告
doc = Document()
doc.add_heading('公司部門統(tǒng)計報告', 0)

# 添加摘要段落
doc.add_paragraph(
    f本報告基于員工數(shù)據(jù)統(tǒng)計分析,共涵蓋{len(dept_data)}個部門。'
)

# 添加表格
table = doc.add_table(rows=1, cols=4)
table.style = 'Table Grid'

# 表頭
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '部門'
hdr_cells[1].text = '員工數(shù)'
hdr_cells[2].text = '平均薪資'
hdr_cells[3].text = '最高薪資'

# 表格數(shù)據(jù)
for dept, data in dept_data.items():
    row_cells = table.add_row().cells
    row_cells[0].text = dept
    row_cells[1].text = str(data['count'])
    row_cells[2].text = f"{data['avg_salary']:.2f}"
    row_cells[3].text = str(data['max_salary'])

doc.add_paragraph('\n報告生成時間:2023年11月1日')
doc.save('部門統(tǒng)計報告.docx')

# 3. 轉(zhuǎn)換為PDF
# 需要先安裝wkhtmltopdf并設(shè)置路徑
# path_wkhtmltopdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'
# config = pdfkit.configuration(wkhtmltopdf=path_wkhtmltopdf)
# pdfkit.from_file('部門統(tǒng)計報告.docx', '部門統(tǒng)計報告.pdf')  # 注意:這種方法需要docx能正確轉(zhuǎn)換為HTML

print("報告生成完成!")

五、總結(jié)

本文介紹了使用Python操作Excel、Word和PDF文件的基本方法:

  • openpyxl 提供了強(qiáng)大的Excel操作功能,可以創(chuàng)建、讀取、修改工作簿,支持公式、樣式和圖表
  • python-docx 使得Word文檔的創(chuàng)建和修改變得簡單,支持段落、表格、樣式等元素
  • PDF處理可以使用多個庫,根據(jù)需求選擇合適的工具

通過這些工具,我們可以實現(xiàn)辦公文檔處理的自動化,大大提高工作效率和準(zhǔn)確性。在實際應(yīng)用中,可以根據(jù)具體需求組合使用這些庫,構(gòu)建復(fù)雜的文檔處理流程。

以上就是Python自動化操作Excel/Word/PDF的實戰(zhàn)指南的詳細(xì)內(nèi)容,更多關(guān)于Python自動化辦公的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用python繪制人人網(wǎng)好友關(guān)系圖示例

    使用python繪制人人網(wǎng)好友關(guān)系圖示例

    這篇文章主要介紹了使用python繪制人人網(wǎng)好友關(guān)系圖示例,需要的朋友可以參考下
    2014-04-04
  • python3.5 tkinter實現(xiàn)頁面跳轉(zhuǎn)

    python3.5 tkinter實現(xiàn)頁面跳轉(zhuǎn)

    這篇文章主要為大家詳細(xì)介紹了python3.5 tkinter實現(xiàn)頁面跳轉(zhuǎn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python安裝教程

    python安裝教程

    這篇文章主要為大家詳細(xì)介紹了python安裝教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • python使用Matplotlib繪制分段函數(shù)

    python使用Matplotlib繪制分段函數(shù)

    這篇文章主要為大家詳細(xì)介紹了python使用Matplotlib繪制分段函數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Python詞云展示庫wordcloud配置詳解

    Python詞云展示庫wordcloud配置詳解

    這篇文章主要介紹了Python詞云展示庫wordcloud配置詳解,詞云就是將詞語通過圖形可視化的方式,直觀和藝術(shù)的展示出來,詞云在我們的生活中經(jīng)常能夠看到,無論是中文的詞云還是英文的詞云,需要的朋友可以參考下
    2023-07-07
  • python實現(xiàn)按任意鍵繼續(xù)執(zhí)行程序

    python實現(xiàn)按任意鍵繼續(xù)執(zhí)行程序

    本文給大家分享的是如何使用Python腳本實現(xiàn)按任意鍵繼續(xù)執(zhí)行程序的代碼,非常的簡單實用,有需要的小伙伴可以參考下
    2016-12-12
  • Python模擬登錄和登錄跳轉(zhuǎn)的參考示例

    Python模擬登錄和登錄跳轉(zhuǎn)的參考示例

    這篇文章主要介紹了Python模擬登錄和登錄跳轉(zhuǎn)的參考示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-10-10
  • keras實現(xiàn)VGG16 CIFAR10數(shù)據(jù)集方式

    keras實現(xiàn)VGG16 CIFAR10數(shù)據(jù)集方式

    這篇文章主要介紹了keras實現(xiàn)VGG16 CIFAR10數(shù)據(jù)集方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Django-simple-captcha驗證碼包使用方法詳解

    Django-simple-captcha驗證碼包使用方法詳解

    這篇文章主要介紹了Django-simple-captcha驗證碼包使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • python開發(fā)入門——列表生成式

    python開發(fā)入門——列表生成式

    這篇文章主要介紹了python 列表生成式的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python開發(fā),感興趣的朋友可以了解下
    2020-09-09

最新評論

武宁县| 延川县| 台湾省| 赞皇县| 彭泽县| 长乐市| 泉州市| 南岸区| 晋州市| 天气| 嘉义县| 镇巴县| 全州县| 炎陵县| 永安市| 图木舒克市| 海宁市| 育儿| 都匀市| 长岛县| 朔州市| 大方县| 宝应县| 叶城县| 河南省| 泉州市| 临夏县| 博罗县| 双城市| 上林县| 安平县| 新邵县| 台北市| 高邮市| 大英县| 山西省| 湘乡市| 湾仔区| 平阳县| 南阳市| 宜宾县|