Python

【PythonでExcelシート自動翻訳】DeepL-APIを使用するやり方解説

本記事ではExcelシートの内容を翻訳するアプリを作成します。

PythonのOpenPyXLでExcelを操作、翻訳にはDeepL APIを使用します。

最後に紹介するpyinstallerを使用するとPythonファイルをexe化することができ、python環境のないPCでも動作するものも作れます。

Excel-VBAで作成するよりもシンプルなコードになるのでオススメの方法です。

それでは早速手順を解説していきます。

事前準備

DeepL-APIの登録

はじめにDeepL-APIのDeepL API Free(無料)に登録しAPIコードを取得します。

一ヶ月に50万文字の制限付きですが、無料版で十分かと思います。

ご自身の情報を入力していき、登録を完了させます。

途中クレジットカード番号を要求されますが、無料版であれば請求は来ませんのでご安心ください。

登録が完了したら、自分のAPI認証キーを確認してください。

後のPythonコード内にこのキーを入力することになります。

Pythonライブラリのインストール

まず始めにDeepLのライブラリをインストールします。

これにより、よりシンプルなコードでDeepL翻訳を実行することができます。

pip install deepl

公式サイトにも記載がある通り、記述するコードがかなり省略可能です。

翻訳例(ライブラリなし)

result = requests.get( 
   "https://api.deepl.com/v2/translate",
   params={ 
     "auth_key": auth_key,
     "target_lang": target_language,
     "text": text,
   },
) 
translated_text = result.json()["translations"][0]["text"]

翻訳例(ライブラリあり)

import deepl 
translator = deepl.Translator(auth_key) 
result = translator.translate_text(text, target_lang=target_language) 
translated_text = result.text

openpyxlのインストール

こちらはインストールがまだの方は必要です。

やり方はこちらの記事を参考にしてください。

【PythonでExcelを操作】OpenPyXLのインストールから実行まで OpenPyXL インストール OpenPyXLはPythonの環境でExcelを操作できるライブラリの一つです。 特にセルの値...

インストール自体はたった一文で完了です。

pip install openpyxl

簡単な翻訳コードの説明

Pythonコード

次のコードは同じ階層にある.xlsxファイルを全て読み込み、sheet1の決められた行数・列数分のセルを全て翻訳しファイル名を”訳後_元のファイル名”とし保存するものです。

import deepl
import openpyxl
import sys
import glob
import os
sys.setrecursionlimit(10000) 

API_KEY = '●●●' # 自身の API キー

source_lang = 'JA'
target_lang = 'EN-US'

try:#翻訳後のファイルを格納するフォルダを作成
    os.mkdir("アウトプット格納先")
except:
    print("アウトプット格納先が既にあります")
    sys.exit()

files=glob.glob('*.xlsx')
for file in files:  
    print(file+"を翻訳中")
    wb=openpyxl.load_workbook(file)
    df_out = wb.active
    ws = wb["sheet1"]#"sheet1を翻訳する"
    
    for i in range(1,100):#必要な行数分
        for t in range(1,16):#必要な列数分
            try:
                text=ws.cell(row=i,column=t).value
                
                # イニシャライズ
                translator = deepl.Translator(API_KEY)
                
                # 翻訳を実行
                result = translator.translate_text(text, source_lang=source_lang, target_lang=target_lang)
                ws.cell(row=i,column=t,value=str(result))
            except:
                next
    wb.save(f'./アウトプット格納先/訳後_'+file) 

pyinstallerでexe化する

exe化することで、python環境がないPCでもExcelを翻訳するソフトを起動することができるようになります。

pyinstallerの詳細はこちらを参考にしてください。

【Pythonでexeファイル作成】pyinstallerで誰でも簡単に.pyを起動 pyインストーラを使うとexeファイルが作成できるのでpython環境がないPCでもPythonファイルを実行することができます。 今...

proxyの設定について

ネットワーク環境によってはプロキシの設定が必要な場合があります。

その場合は下記のコードを追加することで実行できます。

translatorの部分はproxy=を追加で完了です。

proxies = {
  'http': 'http://●●●.●●.●.●:8080',
  'https': 'http://●●●.●●.●.●:8080',
}

translator = deepl.Translator(API_KEY,proxy=proxies)

ぜひ試してみてください。

ABOUT ME
Mickey@コーヒー好きエンジニア
【製造業×プログラミング×AI】Python/VBAを活用した業務改善、Streamlit/Plotlyを活用したWebアプリ開発について初心者向けに発信中|Wordpressブログを運営しながらHTML/CSSの勉強中|趣味は自家焙煎コーヒー作り|noteでは焙煎理論を発信
【製造×プログラミング×AI】
Mickey@コーヒー好きエンジニア
【製造業×プログラミング×AI】ロボット×画像処理×AI×3現主義が得意な生産技術者|Python/VBAを活用した業務改善、Streamlit/Plotly/PySimpleGUIなどを活用したアプリ開発について初心者向けに発信中|趣味は自家焙煎コーヒー作り|noteでは焙煎理論を発信|ココナラではPython/iOS/VBA開発の支援,就職/転職相談などのサービスもやっています↓ Pythonを使ったWebアプリ開発を支援します 成果物が明確なのでPythonを学びたい人にオススメです
\ Follow me /