[166] ロード時、クオートを解釈しないで読み込む機能
ゆーすけ [2009/10/02 12:17:48]
こんにちは。
例えば数字として解釈できるフィールドが2つあって、フィールド1はクオートしたいけど、フィールド2はクオートしたくない、というフォーマットのCSVを扱いたい場合があります。
Cassavaにはオプションでセーブ時のクオートオプションが設定できますが、多分このようなケースにはうまく対処できないと思います。
そこで、クオートを除去しないで、単純に区切り文字で分けるだけの読込方法があればよいと思うのですが、クオートオプションとして「クオートを解釈しない」みたいなものを追加できないでしょうか?その場合、保存時もクオートを追加しないということでよいと思います。
Re: [166] ロード時、クオートを解釈しないで読み込む機能
あすかぜ [2009/10/03 00:28:02]
こんばんは。書き込みありがとうございます。
「クオートを解釈しない」というだけでよいのであれば、クオートのオプションで「全てのセルを""で囲まない」を選択すればクオートを解釈しなくなります。
(他の選択肢は保存時のみに影響しますが、「全てのセルを""で囲まない」のみ読み込み時にも影響します)
また、特定の列のみをクオートするためのエクスポートマクロを書いてみました。
http://www.asukaze.net/soft/cassava/macro/asukaze/quote.csv.cms
エクスポートのたびに列番号の入力が必要になりますが、このエクスポートマクロで出力するようにすれば、クオートを外した状態での編集が可能となります。
このどちらかの方法で解決できるでしょうか?
Re: [166] ロード時、クオートを解釈しないで読み込む機能
ゆーすけ [2009/10/05 20:05:38]
お返事ありがとうございます。
前者の対処でほとんどの場合はよさそうです。
例外としては、クオート内に区切り文字を持つフィールドがある場合には真ん中で切られてしまうわけですが、これには後者のマクロで対応可能でした。
両方を本体で解決するとすれば、「クオートを考慮してフィールド分割した上でセルに取り込み、クオートも含めてセルの内容とし、保存時はそのまま区切り文字で結合する」ということになるのでしょうけど、こういった機能を欲しがる人が他にいるのかどうか・・・というところですよね。
Re: [166] ロード時、クオートを解釈しないで読み込む機能
あすかぜ [2009/10/05 22:22:28]
そうですね。
ファイルを開いた直後に保存したら、クオートや区切り文字を含めて完全に読み込み前と同じ形で書き出せるようなオプションを用意すべきなのかもしれません。
ただ、セル内に "" をデータとして持つのも何か変な気がしますし、見えないところでクオートの情報を保持するのもわかりにくいので、本体側では対応しないと思います。
少し手間がかかりますが、エクスポートマクロでの運用をお願いします。
よろしくお願いします。
Re: [166] ロード時、クオートを解釈しないで読み込む機能
ゆーすけ [2009/10/06 08:57:46]
わかりました。いろいろとありがとうございました。