Javaコードによって生成されたコンテンツ(またはテキスト)をExcelに貼り付けるときに問題が発生しました。問題は、私のJavaコードが複数行の文字列を生成することです。つまり、改行(\n
)が含まれています。このコンテンツをコピーしてExcelファイルに貼り付けようとすると、四角いボックス記号が付いた複数行のテキストが表示されます。Windowsでは改行に\r\n
が使用され、 \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
のドキュメントを見てください。
そして、「ボックス」は他の文字であり、改行や改行ではないと思います。
いつものようにコピー&ペーストしてから、Excelで検索して置き換えてみませんか?
それが助けになるなら、私はこのコード行を実行しました(C#)
Clipboard.SetText("1\n2\r\n3");
次に、ExcelでCtrl-Vを押すと、3つのセルがA1で1になり、A2で2になり、A3で3になります。これは、\ nと\ r\nがExcelで期待どおりに処理されることを意味します。 Java\nと\ r\nを含む文字列も機能するはずです。これにより、Excelのセル設定に問題があると思われます。セルがテキストとしてフォーマットされているかどうかを確認してください。
それ以外は、わかりません、ごめんなさい。
class Test {
public static void main(String args[])
System.out.print("Hello\rHi");
}
\ rにより、カーソルが現在の行の先頭に移動するため、Helloの「He」は「Hi」に置き換えられます。
これを試してください=)
String s1 = "this\r\nis a test";
String s2 = s1.replaceAll("(\\r|\\n)", "");
System.out.println(s2);