複数行あるテキストをブロックごとにExcelの1セルに入れる方法
- (2015-02-01 07:23:20)
リストのバリエーションを作るにはExcelが有利
商品リストをhtmlに変換する際、テキストで編集するが、商品番号順やフラグなどでソートしたバリエーションのリストを作成するにはExcelで編集した方が圧倒的に有利。
たとえば、一つの商品の記述がこんな感じ。
<tr>
<td id="col01"><input type="hidden" name="good" value=0><select name="good"><option>0</option><option>1</option></select></td>
<td id="col02">よいお品</td>
<td id="col03">Very Good Goods</span></td>
<td id="col04">
Very Good Goods, Buy Now!
</tr>
テキストをExcelに取り込む
単行の商品リストならテキストからExcelに取り込むことはそのままコピペだが、改行コードを含むブロックをそのままExcelに取り込むとしたら、はて、どうやるんだろうと、一瞬わからなかった。
「改行コード」が入っていれば、通常csvでは下のセルに移る。「カンマ(,)」が入っていれば、右のセルに移動する。
ブロックを「"」で囲んだら?
csvでは改行コードを含むテキストは「"」で囲まれていることを思い出した。基本これで行けそうだが、やろうとしたら、テキスト内にも「"」がある。「\"」とか使えるのかな?と思ったが知らない。
実際にExcelに入れてみたら「"」が「""」に
わからないので、実際にExcelにこういったテキストを入れて、csvに吐き出させることにした。それが早い。
「"」は「""」に置換されていた。なるほど・・・
UTF-8のhtmlをExcel2003に入れると文字化け
もう一点の注意点はExcel2003の文字コードはShift_JISである点。UTF-8のhtmlを入れるとの間で文字化けを起こす。
操作中はすべてShift_JISで扱い、最後にUTF-8ベースのhtmlにテキストだけコピーすればよいかもしれない。