ExelにKintoneのフィールド情報が反映されない。

はじめまして。独学のPythonとChatGPTを合わせて作成しましたが苦戦しております。若輩者でして、お手数おかけし申し訳ございませんが、どなたか修正点のご指摘いただけませんでしょうか。

何を実現したいのかを書きましょう


### 発生した問題やエラーメッセージを具体的に書きましょう
エラーメッセージはないが、フィールドからの抽出された文字が何故か空白になってしまう。

### 実行したコードをコピー&ペーストしましょう

import requests
from openpyxl import load_workbook
import os
import base64
import urllib.request
import json

def get_kintone_record_by_id(api_token, APP_ID, RECORD_ID):
# Kintone APIのURLを構築
base_url = ‘https://サブドメイン.cybozu.com/k/v1/
record_url = f’{base_url}record.json?app={APP_ID}&id={RECORD_ID}’

# リクエストヘッダーを設定
headers = {
    'X-Cybozu-API-Token': api_token,
    'Content-Type': 'application/json'
}

# リクエストを送信してレスポンスを取得
response = requests.get(record_url, headers=headers)
return response.json()

try:
# Kintoneの環境情報
DOMAIN = “サブドメイン” # ドメインを入力
LOGIN = "ログイン名# ログイン名を入力
PASS = “パスワード” # パスワードを入力
APP_ID = “32” # 取得したいアプリのIDを入力
RECORD_ID = “10” # 取得したいレコードのIDを入力
api_token = ‘生成したAPIトークン’ # 実際のAPIトークンに置き換えてください

# 認証情報の作成
auth = base64.b64encode(f"{LOGIN}:{PASS}".encode()).decode()

# レコードから必要なデータを抽出
landlord = record_data.get('賃貸人', {}).get('value', '')  # 賃貸人フィールドコードに置き換えてください
tenant = record_data.get('賃借人', {}).get('value', '')  # 賃借人フィールドコードに置き換えてください
property_address = record_data.get('物件住所', {}).get('value', '')  # 物件住所フィールドコードに置き換えてください

# データを表示
print(f"賃貸人: {landlord}")
print(f"賃借人: {tenant}")
print(f"物件住所: {property_address}")

# Excelテンプレートファイルのパス
excel_template_path = 'C:\\Users\\USER\\Desktop\\委任状セット自動入力ファイル.xlsx'

# フォルダパス
folder_path = 'C:\\Users\\USER\\Desktop\\委任状自動入力'

# Excelファイルを読み込み
wb = load_workbook(excel_template_path)
sheet = wb['【雛形】委任状【物件名】']

# Excelテンプレートにデータを入力
sheet['B7'].value = property_address
sheet['D24'].value = landlord
sheet['D25'].value = tenant

# 更新されたExcelファイルを保存
updated_filename = f'updated_{RECORD_ID}.xlsx'  # レコード番号でファイル名を生成
wb.save(os.path.join(folder_path, updated_filename))
print(f"Excelファイルを保存しました: {updated_filename}")

レスポンスデータのrecordを先にgetしてあげてみてください。

record_data.get("record").get("賃貸人",{}).get("value","")

私の場合、requests使った際にheadersにcontent-typeを指定してる状態だとそもそもデータ取得できなかったのでもし取得できていない場合コメントアウトしてみてあげてください。urllib.requestを使った場合は大丈夫でした。

1 Like

ありがとうございます。不勉強な質問ですみません。何とかできました。

1 Like

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。