1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonのインストールとExcelファイル処理スクリプトの作成

Posted at

概要

このドキュメントでは、Pythonをインストールし、Excelファイルを処理してCSV形式に変換するスクリプトを作成する方法について説明します。

1. Pythonのインストール

ステップ1: Pythonのダウンロード

  1. Python公式サイトにアクセスします。
  2. 最新版のPythonを選択し、Windows用インストーラをダウンロードします。

ステップ2: Pythonのインストール

  1. ダウンロードしたインストーラ(例: python-3.x.x-amd64.exe)をダブルクリックして実行します。
  2. インストール画面が表示されたら、"Add Python 3.x to PATH" にチェックを入れます。
  3. "Install Now" をクリックしてインストールを開始します。
  4. インストールが完了したら、"Close" ボタンを押して画面を閉じます。

ステップ3: インストール確認

  1. Windows PowerShell または コマンドプロンプト を開きます。
  2. 次のコマンドを入力して、Pythonが正しくインストールされたか確認します。
    python --version
    
    正常にインストールされていれば、Pythonのバージョンが表示されます。

2. openpyxlライブラリのインストール

Pythonが正しくインストールされたら、次にopenpyxlライブラリをインストールします。このライブラリはExcelファイルを操作するために必要です。

ステップ1: openpyxlのインストール

  1. 再度、Windows PowerShell または コマンドプロンプト を開きます。
  2. 次のコマンドを入力して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ファイルパス指定によるデータ処理まで説明しました。これにより、データ処理や変換作業が効率的に行えるようになります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?