見出し画像

kintoneのデータからPythonでExcelファイルを作る

kintoneのデータからPythonでExcelファイルを作ってみました。前回からの流れで環境は同じです。

CSVの出力項目順を固定したい

同じような記事がつづきますが、焼き直し記事でラクしようという趣旨ではなくて(^^;、cli-kintoneの出力は項目順が不定という件の対応です。

データベース的には項目はどの順番でも関係ないのでそういう仕様のなのかなと思ってますが、処理の内容によっては対策が必要です(もしかしたらcli-kintoneの設定かなにかできるかもしれませんがわかりません)。

ちょうどPythonでExcel出力するコードを試していましたので、ついでにやってみました。

全体の流れ

バッチファイルは以下の流れ。

初期設定 (おまじない他)
 ↓
cli-kintone.exe (CSV出力)
 ↓
csv_to_excel.py (Excelファイル作成)
 ↓
csv_to_excel.xlsx (Excelを開く)
バッチファイル名:csv_to_excel.bat
set path=%path%;C:\cli-kintone
cd /d %~dp0
pause "cli-kintone.exe export ok?"
cli-kintone.exe --export -a 1234 -d piyo -t ABCdefgHijklMnOpqrstuVwxYzAbcdefgHiJkLmN -e utf-8 > csv_in.csv

pause "csv_to_excel.py ok?"
csv_to_excel.py
pause "excel_io_csv.xlsx ok?"
csv_to_excel.xlsx
pause "exit?"

PythonでExcelファイルを作成するソースはこんな感じ

Pythonファイル名:csv_to_excel.py
pip install pandas
pip install openpyxl xlrd xlwt
import pandas as pd
import openpyxl
# CSVファイルを読み込む
df = pd.read_csv("csv_in.csv")
# 項目をコピーして追加
df['_$id'] = df['$id']
df['_$revision'] = df['$revision']
df['_年月'] = df['年月']
df['_みかん'] = df['みかん']
df['_りんご'] = df['りんご']
df['_バナナ'] = df['バナナ']
# コピー元の項目を削除
df = df.drop(['$id','$revision','年月','みかん','りんご','バナナ'], axis=1)
# コピー先の項目名を変更
df = df.rename(columns={'_$id': '$id','_$revision': '$revision','_年月': '年月','_みかん': 'みかん','_りんご': 'りんご','_バナナ': 'バナナ',})
# Excelファイルに出力する
df.to_excel("csv_to_excel.xlsx", index=False)

ポイントは2行目の import openpyxl
これがExcelファイルを操作する外部ライブラリになります。

cli-kintoneの項目出力順を並べかえるため以下の方法を考えました。

項目をコピーして追加(コピー元の項目名の先頭に _ を付ける)
 ↓
コピー元の項目を削除
 ↓
コピー先の項目名を変更(削除したコピー元の項目名と同じにする)

実際のExcel項目操作の参考にさせていただいたのは以下リンク。
要所がまとめられてて大変わかりすかったです。今後も参考にさせていただきます。ありがとうございます。

では

バッチファイル実行!

C:\cli-kintone\csv_to_excel>path=(略)C:\cli-kintone
C:\cli-kintone\csv_to_excel>cd /d C:\cli-kintone\csv_to_excel\
C:\cli-kintone\csv_to_excel>pause "cli-kintone.exe export ok?"
続行するには何かキーを押してください . . .
C:\cli-kintone\csv_to_excel>cli-kintone.exe --export -a 1234 -d piyo -t ABCdefgHijklMnOpqrstuVwxYzAbcdefgHiJkLmN -e utf-8  1>csv_in.csv
C:\cli-kintone\csv_to_excel>pause "csv_to_excel.py ok?"
続行するには何かキーを押してください . . .
C:\cli-kintone\csv_to_excel>csv_to_excel.py
C:\cli-kintone\csv_to_excel>pause "excel_io_csv.xlsx ok?"
続行するには何かキーを押してください . . .
C:\cli-kintone\csv_to_excel>csv_to_excel.xlsx
C:\cli-kintone\csv_to_excel>pause "exit?"
続行するには何かキーを押してください . . .

画像1

おおっ!kintoneからホントのExcelファイル(.xlsx)ができました!!

とりあえずここまでできると、kintoneかPythonかExcelのどれか好きなので、データ加工はなんとでもなるような気はしますね~。

簡単ですが以上です。^^;

補足

えっと一点、cli-kintoneのパラメータについて補足します。cli-kintoneのパラメータに、-e utf-8 を指定しています。これ、デフォルト値ですので無くてもよいですが明示的に記述するようにしています。

なぜかというと、ExcelでCSVファイルを直接開く時には、-e sjis としないと文字化けするし、逆にPythonなどは、-e sjis とすると謎のエラーが出たりと、文字コードは気を付けておかないとハマることが多いからです。

ちなみに以下記事は、-e sjis としています。

文字コードは歴史や文化的背景もあって一言では語りつくせませんが、参考までにリンクをひとつ紹介させていただきます。


この記事が気に入ったらサポートをしてみませんか?