![見出し画像](https://assets.st-note.com/production/uploads/images/105670324/rectangle_large_type_2_a1e66fd174cd4e7d6779bbb55fa1e81d.png?width=1200)
kintone制限値チャレンジ4 – ファイル読み込みの上限値。「ヘッダ行にハマる…」
今回調べたこと
制限値を超える行を持ったファイルの読み込みについて
kintoneのヘルプ「制限値一覧」では、読み込むCSVファイルは100MB 10万行まで、読み込むExcelファイルは1MB 1,000行までと書かれています。
例によって、「それ以上のファイル読み込みをさせたらどうなるのか?」
「エラーが出るのか出ないのか?」「制限値いっぱいまでは読み込んでくれるのか?」が知りたくなって、ファイルを作って読み込ませてみることにしました。
確認方法
まずは10万と1行のCSVファイルを作る
Excelで1行だけ作って、10万行コピペするのもアリですが、指が疲れるので、ExcelVBAを書いてマクロで作ってみようと思います。
読み込ませるアプリはkintoneアプリストアにある「顧客リスト」にしました。下記のURLで見つけることが出来ますよ。
https://{使ってるドメイン名}.cybozu.com/k/#/market/app/797
プログラムを考えるのが面倒なんで、ChatGPTくんにプログラム考えてもらいました。質問文はこんな感じ。
ExcelVBAで、次の項目を10万1行出力するプログラムを考えてください。
項目と値は、次の通りです。
項目:レコード番号, 値:1からの連番
項目:会社名, 値:"金都運総研"と7桁の数字連番
項目:部署名, 値:"情報システム部"固定
項目:担当者名, 値:"金都太郎"固定
項目:郵便番号, 値:"5010001"固定
項目:住所, 値:"東京都××××"固定
項目:TEL, 値:"090-××××-××××"固定
項目:FAX, 値:"050-××××-××××"固定
項目:メールアドレス, 値:"kinto_taro@example.com"固定
項目:備考, 値:"hogehoge"固定
項目:顧客ランク, 値:"A"固定
出てきたプログラムはこんな感じ。(ちょこっとだけ修正しました。)
Sub ikkatsuSyutsuryoku()
Dim ws As Worksheet
Dim rowNumber As Long
Dim recordNumber As Long
Dim companyName As String
Dim postalCode As String
Dim address As String
Dim tel As String
Dim fax As String
Dim email As String
Set ws = ThisWorkbook.Sheets("Sheet1") ' データを書き込むシートの名前
rowNumber = 2 ' データを書き込む行番号の初期値
recordNumber = 1 ' レコード番号の初期値
' ヘッダー行書込
ws.Range("A1:K1").Value = Array("レコード番号", "会社名", "部署名", "担当者名", "郵便番号", "住所", "TEL", "FAX", "メールアドレス", "備考", "顧客ランク")
' データを生成し書込
Do While rowNumber <= 100002
companyName = "金都運総研" & Format(recordNumber, "0000000")
postalCode = "5010001"
address = "東京都××××"
tel = "090-××××-××××"
fax = "050-××××-××××"
email = "kinto_taro@example.com"
ws.Cells(rowNumber, 1).Value = recordNumber
ws.Cells(rowNumber, 2).Value = companyName
ws.Cells(rowNumber, 3).Value = "情報システム部"
ws.Cells(rowNumber, 4).Value = "金都太郎"
ws.Cells(rowNumber, 5).Value = postalCode
ws.Cells(rowNumber, 6).Value = address
ws.Cells(rowNumber, 7).Value = tel
ws.Cells(rowNumber, 8).Value = fax
ws.Cells(rowNumber, 9).Value = email
ws.Cells(rowNumber, 10).Value = "hogehoge"
ws.Cells(rowNumber, 11).Value = "A"
rowNumber = rowNumber + 1
recordNumber = recordNumber + 1
Loop
MsgBox "データの生成が完了!"
End Sub
上記をExcelのVBAの標準モジュールにコピペしてマクロ「ikkatsuSyutsuryoku」を実行すれば、1分かからずに10万と1行が出来上がりました。ファイル名で名前を付けて保存で、拡張子を*.csvにすれば、10万1行のデータが入ったcsvファイルの完成です!
![](https://assets.st-note.com/img/1684155115458-hCwNwsxSja.png?width=1200)
ファイルを読み込ませてみる
次に[顧客リスト]アプリの[オプション]ボタンをクリックし、[ファイルから読み込む]メニューをクリックします。
![](https://assets.st-note.com/img/1684155824497-JlV3AuDnFO.png?width=1200)
[ファイルから読み込む]ページが表示されるので、[参照]ボタンをクリックします。
![](https://assets.st-note.com/img/1684155969334-rTN7mcp4GM.png?width=1200)
[開く]ダイアログが表示されるので、作ったcsvファイルを選択して、[開く]ボタンをクリックします。
![](https://assets.st-note.com/img/1684156344780-LFjpJmx2jT.png?width=1200)
お!読み込めなかった・・・画面左上に小さく[一度に読み込める行数の上限(100,000行)を超えています。行数を減らしてください。]とメッセージ表示がされました。
![](https://assets.st-note.com/img/1684156469584-0wo3QrJDK4.png?width=1200)
ここまででわかったこと
制限値を超えるcsvファイルの読み込みは、[読み込み]ボタンをクリックする手順より前に、行数がチェックされてエラーメッセージが表示されることがわかりました。10万行分は読み込んでくれるとかではないんですねー。
![](https://assets.st-note.com/img/1684157010783-Jgx4jZxl4Y.png?width=1200)
次に10万行のCSVファイルを作る
次は制限値ギリギリを読み込ませてみます。csvファイルは先ほどのファイルの最終行を1行だけ削除したものを使います。
![](https://assets.st-note.com/img/1684157760946-WoUFEEnXi1.png?width=1200)
ファイルを読み込ませてみる-その2
先ほどと同じ方法で[顧客リスト]アプリに読み込ませてみました。
・・・しかしながら結果は下図のとおりです(泣
![](https://assets.st-note.com/img/1684157864665-gq5JMWsT5q.png?width=1200)
盲点だった”見出し行”の存在
原因は下図の赤枠部分にありました。
![](https://assets.st-note.com/img/1684157969467-T3bCnPSTAw.png?width=1200)
つまり制限値の「10万行」というのは、見出しとかデータとかに関係なく、「とにかく行数が10万行」ということなんです。だから続けるには、下記のどちらかを選択しなければなりません。
見出しを削って、データのみの10万行のファイルにする。
データを削って、データが99,999行のファイルにする。
よほどのことがない限り、データ削るなんてありえないので、上記1の見出しを削って、データのみの10万行のファイルにすることを選択します。そうすると、次のステップで、アプリのフィールドと対応するファイルの列をすべて指定しなければなりません。
![](https://assets.st-note.com/img/1684158387898-Czf8Sdd6Zv.png?width=1200)
Excelブック形式(*.xlsx)でも同じか確認
同じでした。
ただメッセージがちょっと親切で、ヘルプに飛べるようになってました。
![](https://assets.st-note.com/img/1684158723533-0gJjY3oKod.png?width=1200)
![](https://assets.st-note.com/img/1684158877484-nRkwtm5Q3s.png?width=1200)
まとめ
kintoneアプリにファイルからデータを読み込むには制限があり、
予めそれを超えないようにファイルを用意しないとダメってことがわかりました。
また見出しも1行にカウントされるというのが、ハマりどころですね。
次回予告
じゃあ10万行のデータを読み込ますことは出来ないのでしょうか?
コマンドで kintone のレコード情報を入出力できるツール「cli-kintone」なら出来そうな気がします。
次回
cli-kintoneで10万行のデータを読ませられるか?
にチャレンジ☆彡
この記事が気に入ったらサポートをしてみませんか?