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

FileMaker Pro 12 での汎用カウントアップボタンの作り方

前日に続き、調子に乗ってFileMaker Pro 12ネタ。 フィールド名を名前で設定[Get ( スクリプト引数 );GetField(Get ( スクリプト引数 ))+1] のようなスクリプトを …

JS CMS

JS CMS すばらしい

JS CMS | 簡単・無料・国産のWebデザイナー向けCMS こういうのを使ってみているんですが、すごいですよ! 「HTMLは動かして良いが、PHPはダメだよ」というサーバは、今の時代でも結構ある。 …

no image

ITC

昨晩は飲み会だった。 さるNPOの総会後の懇親会。 酔っ払っていたので帰ってからすぐに布団に入って寝入ってしまったのだが、さっき、腕を蚊に喰われてかゆみで目が醒めてしまい、こうして日記を書いている。 …

ATOM Cam 購入&アクリルケース内に設置

会社の駐車場の降雪確認用のWebカメラを利用する季節になりました。 昨年までWebカメラとして利用していたスマホが壊れたので、Webカメラを購入してもらいました。 ATOM Tech(アトムテック)の …

no image

QNAP TS-251AのバックアップでWARNING

毎日一回、LAN内のPCのUSBDISKにバックアップを取っている。 最近、qnapから以下のようなメッセージが毎日メールされる。 [RTRR Job] (Sync) Job share– …