表題のように、Excelへテキストを貼りつけると、貼りつけたテキストが途中で見切れてしまうことがあります。
原因は、貼り付けようとしているテキストにNUL文字(16進数の文字コードでx00)が含まれているからです。
NUL文字が含まれていると、そこで貼りつけが終了してしまいます。
(なお、メモ帳への貼り付け、サクラエディタへの貼り付け等でも同じようにNUL文字の箇所で切れます)
NUL文字をスペース(x20)に置換して問題ないのであれば、予めNUL文字をスペースに置換してからコピーすることで、この問題を解決できます。
詳しい手順は以下の通りです。
1.テキストをファイルに出力する
初めからファイル形式なのであれば問題ないのですが、問題なのはDBのレコード等、ファイル形式になっていない場合です。
DBのレコードであれば、CSV等の形式でエクスポートする必要があります。
エクスポートの方法はRDBMSによって異なるので、別途調べる必要があります。
なお、Oracle SQL DeveloperのようなGUI操作ができるツールを使用しているのであれば、ツール上で探せばエクスポート用の機能が見つかると思います。
2.16進数の置換ができるエディタで置換する
1で出力したファイルを、エディタで開き、NUL文字(x00)をスペース(x20)に置換します。
置換の方法は以下の通りです。
・サクラエディタの場合
以下のように指定して置換すれば良いです。
置換前:\x{00}
置換後:\x{20}
・秀丸の場合
開いた瞬間に自動的にNUL文字がスペースに置換されます。
・Stirlingの場合
置換機能で、16進データを選択し、以下の指定をすれば良いです。
置換前:00
置換後:20
3.置換後のテキストをコピーし、Excelに張り付ける
これで途切れずに貼りつけができるはずです。
いかがでしたでしょうか。
プログラムで出力したテキストには、NUL文字が含まれることが少なくありません。
NUL文字はC言語系のプログラムでは終端文字として使われているからか、Excelに貼りつけることができず、このような考慮が必要になります。
躓く人も少なくないと思うので、今回記事にしてみました。
何かの助けになれば幸いです。
コメント