SOY Shopのインポートエクスポートで、0からはじまる数字を扱いたい場合どうすれば良いのか?

という質問がありました。


0からはじまる数字というのは、

たとえば会員IDを00015という形で、15番なんだけど、今後の運営を見こうして5桁の数字と見なすようなことで、

最初に0を入れておくことで桁数が増えた時でもデータの並び替えがしやすくなります。


この説明を踏まえた上で、今回の質問に移ります。

今回の説明ではCSVの編集でLibreOfficeというオープンソースのオフィススイートを利用します。

MicroSoftのOfficeを持っていたとしても、CSVの操作はLibreOfficeで行うことをおすすめします。

LibreOffice(CSV周り) - おすすめ - SOY CMSを使ってみよう




はじめにカスタムフィールドかカスタムサーチフィールドで0からはじまる数字を入力するためのフィールドを作成します。

SOY Shopで高度な検索フォームを設置してみよう


CSVのエクスポートの準備として、作成したフィールドに


0_kara_hajimaru_csv


このように0から始まる数字を入力して更新します。

更新後に商品のCSVエクスポートの画面を開き、標準設定の状態でCSVをエクスポートします。


ダウンロードできたファイルをLibreOfficeで開くと、

※説明のために不要な項目のエクスポートは行っていません。


0_kara_hajimaru_csv1


SOY Shopの管理画面で入力した00015が先頭の0の並びが外れて15と表示されてしまいます。

一応CSVファイルをテキストエディタで開いてみると、


1,item-001,苔オブジェ,00015

となっているので、SOY Shopからの出力は登録した値そのまま出力して、LibreOfficeの方が0を除く処理をしているらしい。

LibreOfficeの設定をそのままにして00017といった形を入力しても、自動で0が除かれ、

この状態でSOY ShopでCSVインポートしても、17というデータが登録されていまいます。




これから冒頭の0が消えてしまう対策を記載します。


0_kara_hajimaru_csv2


数字を編集したいセルにフォーカスし、右クリックでセルの書式設定を開きます。


0_kara_hajimaru_csv3


0_kara_hajimaru_csv4


セルの書式設定の画面にある先頭のゼロの値に桁数を入れてOKを押すと、

※今回は5桁の数字なので5と入力する


0_kara_hajimaru_csv5


セルの数字の箇所の表示が変わります。

この状態で00015から00017に変更します。


念の為にCSVファイルをテキストエディタで開いて確認してみて、


1,item-001,苔オブジェ,00017

冒頭の0が消えてないことを確認した上でSOY Shopの管理画面のCSVインポートを試してみると、


0_kara_hajimaru_csv_e


無事に冒頭の0が消えていない値として数字が登録されました。