kintoneのCSV読み込み(インポート)、書き込み(エクスポート)の微妙なあれこれ

大前提としてkintoneの「ファイルから読み込む」はCSVかエクセルのインポートです。尚、『Excelブック形式:最大1MB、1,000行まで、CSV形式:最大100 MB、10万行まで』となっていますので1,000行を越えるエクセルは要注意です。 kintoneの「ファイルに書き出す」はエクスポートです。その他、kintone独自用語としては「テーブル」があります。htmlのテーブルでもなく、データベースの1テーブル(kintoneでは1アプリ)でもなく、1アプリの1レコード内における繰り返しフィールドをkintoneではテーブルと言います。とても厄介ですね。

さて、kintoneで事業所の個別郵便番号データダウンロードの「差分データのダウンロード」を使いCSVを読み込み、1つ新規kintoneアプリを作った後、読み込んだCSVの縦列の並び順を変えて、CSVを一括で再インポート(読み込み)してみました。

尚、 事業所の個別郵便番号データダウンロード については、1行目に列名が入っていないです。手作業でCSVに列名を追加してから、kintoneでCSVを読み込んでください。

様々なCSVフォーマット達とkintoneの1アプリの縦列の紐づけをkintoneへのCSVインポート時にパターン登録する機能があるかどうか?

「異なる縦列順序や列名の様々な種類のCSV」と「kintoneの1アプリの列たち」の紐づけをkintoneにパターン登録する機能は、残念ながらありません。

CSVとkintoneアプリの列名が全て同じであれば、CSVインポートで列は自動結び付け

自動化できる範囲としては、CSVの1行目の列名がkintoneの1つのアプリと同じであれば、自動で同じ列を紐づけしてくれるところまでです。パターン登録機能が無いので、列の紐付け作業はCSVの読み込み(インポート)のたびに毎回発生します。

1レコード内の繰り返しフィールドは、複数行で同じ「レコード番号」にてCSVエクスポート

1レコード内に配置した「繰り返しフィールド(kintone用語ではテーブルもしくはサブテーブル)」については、CSVで同じ「レコード番号」のレコードを「繰り返しフィールド」の繰り返し数と同じ行数でエクスポートされます。「レコード番号」はkintoneの1アプリに最初から存在している自動採番のデフォルトフィールドです。

テーブル(繰り返しフィールド)を含むCSVの書き出し(エクスポート)は、「レコード番号」をドラッグ&ドロップで加えてから

テーブル(繰り返しフィールド)を含むCSVの書き出し(エクスポート)は、以下画像の様に、毎回、必ず、左の選択肢から右側に「レコード番号」をドラッグ&ドロップで加えてから行ってください。

「レコード番号」はkintoneアプリに最初から存在しているデフォルトのフィールドとなっており、また、CSV上では「レコードの開始行」だけに*(アスタリスク)が入るようになっていて、テーブル(繰り返しフィールド)を含む1レコードの切れ目を認識できるようにCSVエクスポートされます。

参考までに、「一覧」のデフォルト「(すべて)」では、「テーブル(繰り返しフィールド)」も「関連レコード一覧」も表示されません。「ルックアップ」は「(すべて)」で「一覧」で表示されます。「(すべて)」ではすべて表示されないという矛盾を抱えているため、一覧を別に作る必要があります。【kintone】一覧画面(すべて)で表示されないカラムがある

kintoneのデフォルト仕様で色々なアプリを作るというのは無理な事も多い。javascriptによる開発じゃないと対応できないデッドラインがすぐに見えてくる。

CSVインポートはkintoneからエクスポートしたものを使うことがベストプラクティス

CSVのインポートは書き出しされたCSVと同じフォーマットのCSVを準備してインポートする事が出来ますが、外部のCSVをkintoneとおなじCSVフォーマットルールに合わせるのは大変なので、基本的にCSVはkintoneからエクスポートしたものを使うことがベストプラクティスです。微妙です。

CSVインポートの日付形式はYYYY/MM/DDで!

DD/MM/YYYYだとエラー出ます。

フィールド順番の並び替えは後から出来ない!

普通に手作業でアプリを作る時と同じように、アプリ作成時の初回CSV読み込みでフィールドの順番が決まてしまいます。 主キーのIDフィールドや論理削除など、並び順をよく考えてCSVを加工してから読み込ませることをお勧めします。

CSV読み込みの際、自動採番フィールド不可

CSV読み込み時、「自動採番」用のフィールドへ自動採番することは出来ないため、kintoneが持つレコード番号を使う事が推奨される。

1レコード内に繰り返しフィールドが複数ある場合

繰り返しフィールドがレコード内に1個の時と同じです。同じ「レコード番号」の行が「テーブル」の繰り返しの数だけ増えます。「レコード番号」22の行がtable01の繰り返しフィールド2行とtable02の 繰り返しフィールド 3行で合計5行になっていることがわかります。また、エクセルのA3に「レコードの開始行」としてアスタリスクもあります。