概要
このドキュメントでは、Pythonをインストールし、Excelファイルを処理してCSV形式に変換するスクリプトを作成する方法について説明します。
1. Pythonのインストール
ステップ1: Pythonのダウンロード
- Python公式サイトにアクセスします。
- 最新版のPythonを選択し、Windows用インストーラをダウンロードします。
ステップ2: Pythonのインストール
- ダウンロードしたインストーラ(例:
python-3.x.x-amd64.exe
)をダブルクリックして実行します。 - インストール画面が表示されたら、"Add Python 3.x to PATH" にチェックを入れます。
- "Install Now" をクリックしてインストールを開始します。
- インストールが完了したら、"Close" ボタンを押して画面を閉じます。
ステップ3: インストール確認
- Windows PowerShell または コマンドプロンプト を開きます。
- 次のコマンドを入力して、Pythonが正しくインストールされたか確認します。
正常にインストールされていれば、Pythonのバージョンが表示されます。
python --version
2. openpyxl
ライブラリのインストール
Pythonが正しくインストールされたら、次にopenpyxl
ライブラリをインストールします。このライブラリはExcelファイルを操作するために必要です。
ステップ1: openpyxl
のインストール
- 再度、Windows PowerShell または コマンドプロンプト を開きます。
- 次のコマンドを入力して
openpyxl
ライブラリをインストールします。pip install openpyxl
3. Pythonスクリプトの作成
以下は、特定の文字列("検索対象")を持つセルを検索し、その上部の行を削除してCSV形式で保存するPythonスクリプトです。
import openpyxl
import csv
import argparse
# コマンドライン引数の解析
parser = argparse.ArgumentParser(description="Excelファイルを処理し、CSVに変換します。")
parser.add_argument('-excelFilePath', type=str, required=True, help="Excelファイルのパス")
args = parser.parse_args()
excel_file_path = args.excelFilePath
csv_output_path = "C:\\Output\\processed_data.csv" # 固定のCSV出力パス
# 検索する文字列(検索対象)
search_string = "検索対象"
# Excelファイルの存在確認
try:
# Excelファイルを開く
print(f"Excelファイルを開いています: {excel_file_path}")
workbook = openpyxl.load_workbook(excel_file_path)
worksheet = workbook.active # 最初のシートを使用
# 使用範囲を取得
rows = list(worksheet.iter_rows(min_row=1, max_col=worksheet.max_column, max_row=worksheet.max_row))
# 指定文字列を含むセルを検索
target_row_index = None
for row_idx, row in enumerate(rows, start=1):
for cell in row: # 各行のすべてのセルをチェック
if cell.value is not None and search_string in str(cell.value):
target_row_index = row_idx
break # 一致したらループを抜ける
if target_row_index is not None:
break # 行が見つかったら外側のループも抜ける
if target_row_index is None:
raise ValueError("指定した文字列のセルが見つかりませんでした。")
# 上部の行を削除
print(f"不要な行を削除しています... (行 {target_row_index})")
for _ in range(1, target_row_index):
worksheet.delete_rows(1)
# CSVとして保存
print(f"データをCSVとして保存しています: {csv_output_path}")
with open(csv_output_path, mode='w', newline='', encoding='utf-8') as csv_file:
writer = csv.writer(csv_file)
for row in worksheet.iter_rows(min_row=1, max_row=worksheet.max_row, max_col=worksheet.max_column):
writer.writerow([cell.value for cell in row])
print("処理が完了しました。")
except Exception as e:
print(f"エラーが発生しました: {e}")
スクリプトの説明
-
コマンドライン引数:
-excelFilePath
でExcelファイルのパスを指定します。 -
検索文字列:
search_string
に直接"検索対象"が設定されています。 -
Excelファイル操作:
openpyxl
を使用してExcelファイルを開き、指定された文字列が含まれるセルを検索します。 - CSV出力: 指定された文字列が見つかった場合、その上部の行を削除し、結果をCSV形式で保存します。
4. DelphiからPythonスクリプトを実行する方法
DelphiアプリケーションからPythonスクリプトを実行するには、以下の手順に従います。
ステップ1: ユーザーによるExcelファイルパスの指定
- Delphiアプリケーションでダイアログボックス(例:
TOpenDialog
)を使用して、ユーザーにExcelファイルのパスを選択させます。
ステップ2: Pythonスクリプトの実行
- 選択されたパスを引数としてPythonスクリプトを実行します。以下はDelphiコード例です。
uses
ShellAPI;
procedure ExecutePythonScript(const ExcelFilePath: string);
var
PythonExePath: string;
begin
PythonExePath := 'C:\Path\To\python.exe'; // Python実行ファイルへのパス
ShellExecute(0, 'open', PChar(PythonExePath), PChar('C:\Path\To\process_excel.py -excelFilePath "' + ExcelFilePath + '"'), nil, SW_SHOWNORMAL);
end;
注意点
-
Python環境: Pythonが正しくインストールされていることと、
openpyxl
ライブラリがインストールされていることを確認してください。必要な場合は次のコマンドでインストールできます。pip install openpyxl
-
エラーハンドリング: Pythonスクリプト内でエラーハンドリングが適切に行われていることも確認してください。
まとめ
このドキュメントでは、PythonのインストールからExcelファイルパス指定によるデータ処理まで説明しました。これにより、データ処理や変換作業が効率的に行えるようになります。