Search

2023/08/22

Windows版Office Lensの代替、類似アプリ PerspectiveImageCorrection

スマホではよく使う斜めの写真を正しい正方形にする機能。
MS-Cameraのドキュメントモードなどスマホアプリは多い。
でもwindowsがあまりない・・・。
前はMS Office Lensを使っていたが提供終了してしまった。
あの、4点をクリックするだけの単純機能が欲しい。

窓の杜で公開していて助かった!
やっぱり便利!


PerspectiveImageCorrection
https://forest.watch.impress.co.jp/library/software/perspective/

jsonのデータをGoogleスプレッドシートに書込み Pythonより

とあるjsonデータをスプレッドシートに書込み
さらっと手順を。



■WindowsローカルにはPythonとVSCodeがインストール状態で、
VSCodeでPythonが実行できる状態に。

VSCode
https://azure.microsoft.com/ja-jp/products/visual-studio-code

Python
https://www.python.org/downloads/windows/
最新のDownload Windows installer (64-bit) をインストール


VSCodeの日本語拡張とPython拡張をインストール

■pipでPythonに下記をインストール

pip install google-auth google-auth-oauthlib google-auth-httplib2
pip install gspread
pip install requests #webにアクセス必要なとき

■GoogleCloudでプロジェクト作成
下記手順はChatGPTにて作成
この手順でプロジェクトを作成する

Google ドライブのスプレッドシートにアクセスするための認証情報を取得したいです。
Google Cloud プロジェクトを作成し、API を有効する手順を教えてください

 


Google ドライブのスプレッドシートにアクセスするためには、Google Cloud プロジェクトを作成し、API を有効化してから認証情報を取得する必要があります。以下に手順を示します:

Google Cloud プロジェクトの作成と API の有効化:

Google Cloud Console にログインします(https://console.cloud.google.com/)。
右上の「プロジェクトを作成」ボタンをクリックして、新しいプロジェクトを作成します。プロジェクト名を入力し、適切な組織を選択します。
プロジェクトが作成されたら、左上のプロジェクト名の横にあるメニューアイコンをクリックし、ダッシュボードに移動します。
「API とサービス」 > 「ライブラリ」を選択して、利用したい API を検索します。ここでは「Google Sheets API」を検索し、有効にします。
認証情報の作成:

ダッシュボードから「API とサービス」 > 「認証情報」を選択します。
「認証情報を作成」ボタンをクリックして、サービス アカウント キーを作成します。
サービス アカウント名を入力し、役割として「プロジェクト」 > 「エディター」を選択します。その他の設定は必要に応じて調整できます。
「次へ」をクリックし、キーのタイプとして JSON を選択します。これにより JSON ファイルが生成されます。
「作成」ボタンをクリックして、JSON ファイルをダウンロードします。
JSON ファイルの保存と使用:

ダウンロードした JSON ファイルをスクリプトがあるディレクトリに移動します。

スクリプト内で、JSON ファイルのファイル名を使用して認証情報を読み込むコードを記述します。例えば:

python
Copy code
from oauth2client.service_account import ServiceAccountCredentials

credentials = ServiceAccountCredentials.from_json_keyfile_name('YOUR_JSON_FILE.json', ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive'])
gspread ライブラリを使用して Google ドライブに接続し、スプレッドシートを操作するコードを記述します。

以上の手順に従って、認証情報を取得し、スクリプト内で使用することで、Google ドライブのスプレッドシートにアクセスできるようになります。

■ダウンロードしたjsonを確認

1)ファイルパス >アクセスするときにpythonコードに記載

2)メールアドレス >スプレッドシートにアクセス権を付与
ex)prjspr@prjspr.iam.gserviceaccount.com みたいなアドレスがjsonファイル内にある

■Googleドライブにスプレッドシートを作成
前述のメアドに編集権を追加する


■VScodeに書き込んで実行

import requests

import json

import gspread

from google.oauth2 import service_account


# Google ドライブの認証情報のJSONファイルを指定

credentials = service_account.Credentials.from_service_account_file('C:/Users/tmp/prjspr-12345678.json', scopes=['https://www.googleapis.com/auth/spreadsheets'])


# Google ドライブに接続

client = gspread.authorize(credentials)


# スプレッドシートのキーを指定

spreadsheet_key = 'KEY'


#ウェブアクセスの情報設定 

url = 'https://webconnect.yourdata.example/dataconn/'

headers = {

    'aaa': '2023-08-21'

}


data = {

    "bbb": "ccc"

}


response = requests.post(url, headers=headers, json=data)

json_data = response.json()


# Google ドライブのスプレッドシートを開く

spreadsheet = client.open_by_key(spreadsheet_key)

worksheet = spreadsheet.get_worksheet(0)  # ワークシートを選択


# ヘッダーを書き込む

header_values = [["Order ID", "itemno", "amount"]]

worksheet.update('A1', header_values)


# 注文データをワークシートに書き込む

row = 2  # ヘッダーの下から行を開始

for order in json_data.get("orders", []):

    order_id = order.get("id")

    for line_item in order.get("line_items", []):

        variation_name = line_item.get("variation_name")

        gross_amount = line_item.get("gross_amount", {}).get("amount")

        worksheet.update(f'A{row}', order_id)

        worksheet.update(f'B{row}', variation_name)

        worksheet.update(f'C{row}', gross_amount)

        row += 1


print("Data has been saved to the Google Sheet.")