記事で書いたものです。通販サイトASPからダウンロードしたCSVをMisocaの請求書一括作成のフォーマットに変換するものを、jsで書きました。CSVを読み込むベースはこちらを参考にさせて頂きつつ。noteエクセルでいじると文字コードがShift-JISになってしまうので、文字コードを変換するライブラリのお世話になります。id="sample">ポイントサンプルコードでは考慮していませんが、元データに価格が含まれていると、カンマで区切られている場合があります。そのままだと「1,000円」なら「1」と「000」で区切られた状態になるので、結合してやる必要があります。1,000サンプルコードを使って二次元配列に収めるとこうなります。[["商品名","価格"],["商品1",500],["商品2","1,000"]];これではarray[1][1]が「”1」となり、array[1][2]は「000′′」となってしまうので、結合してやる必要があります。紹介した案件では、価格の箇所が「”」で始まる場合は次の要素と結合、という処理を行いました。array[i][2];array[i].splice(2,1);}}出力フォーマットに合わせる配列で取りこんだCSVを、出力したいフォーマットに合わせて変換します。今回はMisocaの請求書一括作成用のフォーマットにつくりかえます。id="#change">変換する</div>案件では、メールアドレスをキーにして同じ人の注文を1行にまとめるみたいな処理をしていますが、地味なのでここでは割愛します。CSVを書きだすこちらを参考にさせて頂きました。downloadLink.remove();}今回は、出力したファイルをエクセルで編集したりせずにそのままMisocaにアップする想定なので、参考サイトにあるBOMの追加や文字コードの変換は省略しています。id="change">変換する</div>なんかもっと美しくなりそうな感じはします。これでもいろいろ割愛してシンプルにしてありますが、実際は顧客データも読み込んで販売データとつき合わせて同じ人の注文を1請求書にまとめたりとか、品目数の上限を超えた場合等々のエラー処理とか色々しているのでさらにゴチャついています。動作の方は問題なく、Misocaのフォーマット通りのcsvを出力できました。なにより、クライアントが請求書作成にかけていた労力は一気に削減されたと喜んで頂けたのが嬉しいかぎり。新免祥太1988年岡山生まれ。外食企業のWEB・EC担当を経験したのち、2013年12月より「野良人(のらんど)」の屋号で独立しWEBデザイン・プログラミングなどWEBサイト制作の工程全般を請け負っています。お気軽にご相談ください。拠点にしていますが、全国のお客様とお仕事をさせて頂いております。お気軽にお問い合わせください。Reserved.野良人とは制作事例ブログお問い合わせ。