IT仕事

VBA-JSONはダメだったがPowerQueryはよかった

投稿日:

オンラインショップの在庫管理目的で、業務システムを動かしているAccessかExcelで、何とかしてWebの商品マスターAPIのデータを取ってきたい。

最初、VBA-JSONというのを使えばいいのかなと思って、一日触ってみた。
いいとこまではいくのだが、名前と階層をいちいち書いていかなくては行けなくて、結構それが面倒で小難しくて、すぐに嫌になった。

次に試してみたのは、Excel2013のアドインのPowerQuery。
結論を先にいうと、うまくいった。
プログラムレスで、JSONをExcelのシート上にテーブル表示できる。
作ったシートはAccessでリンクできた。
試していないけど、Accessのクエリで加工もできそうだ。

途中にぶち当たった問題:

itemなどと表示されていてリンクのついている文字をクリックすることでその階層の表示ができるのだが、欲しい項目を見つけるのに結構苦労するところが一つ。
まあこれは、http://json.parser.online.frのような、JSONをパースして視覚的に表示してくれるツールでもって、あらかじめ自分の欲しい項目がどれなのか、リストアップしておけば問題ないであろう。

CS-CARTのWebAPIは、サーバ環境によってURL文字列が変わる。
「mod_rewritが無効になっている場合は・・・」とマニュアルにあって、自分の環境はまさにそれだと気が付くのに大分時間がかかった。

CS-CARTの商品リストをWebAPIから取ってきたいのが本命だったのだが、何度やっても最大50件までしか取ってきてくれない。
原因はCS-CART側にあることは、少し調べてみてわかったのだが、対応策が見えない。
ユーザーが少ないせいか、WEBに情報が少ない。
試行錯誤して、URLの最後に「limit=100」のように文字を入れてみたら、100件とれた! マニュアルには書いてなかったけど、それでもうまくいくときにはいくものだ。
50件までしか取れなかったURL:https://www.hogehoge.com/api.php?_d=products
100件取れたURL:https://www.hogehoge.com/api.php?_d=products&limit=100

-IT仕事

執筆者:

関連記事

no image

desknet’s neo

会社で使っているスケジュール管理サービスなのだが、このたびdesknet’s からdesknet’s neoにバージョンアップした。 スマートフォン対応というのに惹かれたのだが …

Shopify(Matrixify)でスケジュール化したJobのキャンセル

どうしても方法を見つけられなかったが、ふと画面に目を落とすと、あった、方法が。 焦ると視野が狭くなって、なかなか気が付かないんだよなあ、こういうの。 You have 4 scheduled jobs …

Amazonへ出品している商品の、商品名だけを一括で変更したいときの手順

1.以下のページを参考に、出品レポートをダウンロード。商品名を一括で変更・編集する方法 – Amazon出品サービス / 出品に関する一般的な質問 – Amazonセラーフォー …

no image

人気試験となるか

IPAが新しいセキュリティ試験をやるらしい。 新試験区分『テクニカルエンジニア(情報セキュリティ)試験』創設 http://www.jitec.jp/1_00topic/topic_20050901_ …

no image

LimeSurvey2.0メモ

・トークンデータのCSVインポート1万件にかかった時間は2分。トークン生成も同じくらいの時間がかかる。 ・インポート時に「日本語 SJIS」指定しないと、姓名が表示されなかった。 ・JSの実行がFFだ …