近年、業務効率化やデータ処理の自動化は企業にとって欠かせないスキルとなっています。特に、サーバー上でPythonを使ってExcelやPDFを自動処理できると、手作業を大幅に削減できます。本記事では、Linux環境でPythonを活用してExcel・PDFをサーバー自動処理する方法を解説します。
1. 前提条件
- Linuxサーバー(Ubuntu/Debian系を想定)
- Python 3.10以上
- pipがインストール済み
- 基本的なLinuxコマンド操作ができる
必要に応じて、以下のパッケージをインストールします。
sudo apt update
sudo apt install python3-pip python3-venv
2. PythonでExcelを自動処理する
PythonにはExcel操作用の便利なライブラリが複数あります。
(1) openpyxlによるExcel操作
openpyxl
は、.xlsx形式のExcelファイルを読み書きできるライブラリです。
pip install openpyxl
例:Excelデータの読み込みと書き込み
import openpyxl
# Excelファイルを読み込む
wb = openpyxl.load_workbook('sample.xlsx')
ws = wb.active
# データの読み込み
for row in ws.iter_rows(values_only=True):
print(row)
# データの書き込み
ws['A1'] = 'Python自動化'
wb.save('sample_output.xlsx')
(2) pandasを使った高度なデータ処理
pandas
とopenpyxl
を組み合わせることで、大規模データの集計や分析も可能です。
pip install pandas openpyxl
import pandas as pd
df = pd.read_excel('sample.xlsx')
print(df.head())
# データ加工例
df['合計'] = df['数量'] * df['単価']
df.to_excel('processed.xlsx', index=False)
3. PythonでPDFを自動処理する
PDFファイルのテキスト抽出や分割・結合は、pdfplumber
やPyPDF2
が便利です。
(1) pdfplumberでテキスト抽出
pip install pdfplumber
import pdfplumber
with pdfplumber.open('sample.pdf') as pdf:
for page in pdf.pages:
text = page.extract_text()
print(text)
(2) PyPDF2でPDF操作
pip install PyPDF2
from PyPDF2 import PdfReader, PdfWriter
reader = PdfReader("sample.pdf")
writer = PdfWriter()
# 1ページ目だけ抽出
writer.add_page(reader.pages[0])
with open("output.pdf", "wb") as f:
writer.write(f)
4. サーバーでの自動化(cronを活用)
Linuxでは、cron
を使って定期的にPythonスクリプトを実行できます。
- crontabを編集
crontab -e
- 例:毎日午前3時にスクリプトを実行
0 3 * * * /usr/bin/python3 /home/user/scripts/auto_process.py
※Pythonスクリプトはフルパスで指定してください。
5. 注意点とベストプラクティス
- Excel/PDFのパスは絶対パスで指定する
- サーバーでGUI操作はできないため、ライブラリはCLI対応のものを使用
- 大量データ処理の場合は、ログを残す
- エラー処理(try/except)を入れると安定性が向上
6. まとめ
Python+Linuxを組み合わせることで、ExcelやPDFの自動処理が可能になります。cronで定期実行することで、手作業の削減や業務効率化を実現できます。中級エンジニア以上であれば、さらにpandasやPDFライブラリを活用した高度な自動化も可能です。