コンテンツをExcelファイルに貼り付けるときに文字列から改行を削除する方法
-
06-07-2019 - |
質問
Javaコードによって生成されたコンテンツ(またはテキスト)をExcelに貼り付けるときに問題があります。
問題は、私のJavaコードが複数行、つまり改行( \ n
)を含む文字列を生成することです。このコンテンツをコピーしてExcelファイルに貼り付けようとすると、四角いボックス記号が付いた複数行のテキストが表示されます。 Windowsは \ n
だけでなく、改行にも \ r \ n
を使用していることを知りました。 \ n
を \ r \ n
に置き換えて、生成されたテキストを貼り付けようとしましたが、Excelファイルに同じ四角いボックスが表示されています。サンプルコードは次のとおりです。
String myString = "a1\nb1";
String tmpString =myString.replace("\n","\r\n");
System.out.println( "Original = " +"\""+myString+"\"");
System.out.println( "Result = " +"\""+tmpString+"\"");
"を使用しました" でテキストを折り返します。 tmpstring をExcelに貼り付けようとすると、四角形のボックスが表示されました。 セル内に複数行があるボックスを削除するにはどうすればよいですか
解決
復帰/改行が必要ですか?タイトルにはそうではないと書かれています。文字列に改行がある場合、コードは明示的に改行を追加しています。両方を削除する場合は、String.replaceAll()を使用します。これは正規表現を取ります。
public static void main(String[] argv)
throws Exception
{
String s1 = "this\r\nis a test";
String s2 = s1.replaceAll("[\n\r]", "");
System.out.println(s2);
}
この例では、出現する文字を見つけて削除します。おそらく、文字のシーケンスを探してスペースに置き換えたいと思うでしょうが、それはあなたにお任せします: java.util.regex.Pattern
のドキュメントを見てください。
そして、私は" box"リターンや改行ではなく、他の文字です。
他のヒント
いつものようにコピーして貼り付けてから、Excelで検索して置換しませんか?
助けがあれば、このコード行を実行しました(C#)
Clipboard.SetText("1\n2\r\n3");
、次にExcelでCtrl-Vを押すと、3つのセルがA1で1、A2で2、A3で3になります。これは、\ nおよび\ r \ nがExcelで期待どおりに処理されることを意味します。 \ nおよび\ r \ nを含むJava文字列も同様に機能するはずです。これは、Excelのセル設定に問題があると信じ込ませます。セルがテキストとしてフォーマットされているかどうかを確認します。
それ以外、わからない、ごめんなさい。
class Test {
public static void main(String args[])
System.out.print("Hello\rHi");
}
\ rカーソルが現在の行の先頭に移動するため、「He」は「こんにちは」は「こんにちは」に置き換えられます。
試してみてください=)
String s1 = "this\r\nis a test";
String s2 = s1.replaceAll("(\\r|\\n)", "");
System.out.println(s2);