技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

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}
      置換後:
     
    秀丸の場合
     開いた瞬間に自動的にNUL文字がスペースに置換されます。
     
    ・Stirlingの場合
     置換機能で、16進データを選択し、以下の指定をすれば良いです。
      置換前:00
      置換後:20
      
  3. 置換後のテキストをコピーし、Excelに張り付ける
    これで途切れずに貼りつけができるはずです。