web-dev-qa-db-ja.com

Excelデータを固定幅のテキストとして貼り付ける方法は?

Excelでデータをコピーしてテキストファイルに貼り付けると、セル間にタブが表示されます。それは良いことではありません。スペースが必要です。列を整列させたいのです。どうすれば手間をかけずにこれを達成できますか(当然、手動で正規表現の実行を開始したくないなど)。

「名前を付けて保存」( この質問 のように)を使用することは私にとって解決策ではありません。コピーして貼り付ける必要があります。

16
einpoklum

これは確かに説明するのは簡単ではありません...しかし、それがセットアップされた後、それは最小限の努力で機能します。また、これは@pnutsが概説したもののわずかなバリエーションです

コピーして貼り付けることができるテンプレートスプレッドシートを使用することをお勧めします。私が作成したテンプレートには、次のような3つのタブがあります。

tabs

  • Dataタブはデータが貼り付けられる場所です
  • Lengthはいくつかの計算を行って最長の列を決定します
  • Space insertは適切な数のスペースを挿入し(編集)、ここからコピーして正しい結果を得ることができます

長さタブは次のようになります

length

行1には、下の列の最大文字数があり、式が含まれています

=MAX(A2:A101)+1

+1は区切り文字を作成します。

行2からn(この例では100に拡張)には、各文字列の長さを評価するための式が含まれています

=LEN('Data tab'!A1)

スペース挿入タブは次のようになります

space insert

各セルには、それ自体の長さを最大値(+区切り文字)と比較して評価し、適切な数のスペースを挿入するためのセルが含まれています。

='Data tab'!A1&REPT(" ",length!A$1-length!A2)

数式をコピーして貼り付けると、行1をロックする$に注意してください

(編集)スペース挿入タブからコピーできます。

notepad

14
Pynner

最も簡単な解決策は、数値データを "commified"文字列に連結して、テキストファイルに正しく貼り付けることです。 1つの行のExcel数式を作成し、それをワークシートのすべての行にコピーしてから、数式列をコピーしてテキストファイルに貼り付けます。例えば、

データ

セルA1:247

セルB1:19

セルC1:1437

セルD1の数式

= A1& "、"&B1& "、"&C1

テキスト貼り付け可能な結果

247,19,1437

公式に依存しない別のアプローチがあります。

  • まず、データ列がすべて同じ幅であることを確認します。
  • 次に、幅が2のデータ列の各ペアの間に別の列を挿入します。
  • 挿入された各列に単一のコンマを入力し、データの長さまでコピーします。
  • 最後に、ワークシートをフォーマット済みテキスト(スペース区切り)(* .prn)ファイルとして保存します。

この代替手段の利点は、データのフォーマットが保持されることです。データをコンマ形式にしたい場合、または小数点第1位を表示したい場合は、形式がprnファイルに保持されます。

3
chuff

Wordでデータをコピーしてから、検索と置換(Ctrl + H)を使用してタブをスペースに置き換えることができます。

  1. Wordでデータを開いて貼り付ける
  2. 押す Ctrl+H
  3. もっと>>
  4. 特殊な
  5. ホワイトスペース
  6. 置換にスペースを入れます:
  7. すべてを交換
0
Michael