كيفية إزالة حرف الإرجاع من السلسلة أثناء لصق المحتوى في ملف Excel

StackOverflow https://stackoverflow.com/questions/1612808

  •  06-07-2019
  •  | 
  •  

سؤال

أواجه مشكلة أثناء لصق محتوياتي (أو النص) التي تم إنشاؤها بواسطة كود 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+"\"");

لقد استخدمت " " لالتفاف النص.عندما حاولت لصق com.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");

ثم Ctrl-V في Excel وتم ملء 3 خلايا بـ A1 حصلت على 1، A2 حصلت على 2 و A3 حصلت على 3.وهذا يعني أنه يتم التعامل مع و كما هو متوقع بواسطة Excel.يجب أن تعمل سلاسل Java التي تحتوي على و أيضًا.هذا يقودني إلى الاعتقاد بوجود شيء ما في إعدادات خلية Excel.تحقق مما إذا كانت الخلايا منسقة كنص.

بخلاف ذلك، ليس لدي أي فكرة، آسف.

class Test {
    public static void main(String args[])
    System.out.print("Hello\rHi");
}

نظرًا لأن المؤشر يتحرك إلى بداية السطر الحالي، لذلك يتم استبدال "He" في Hello بـ "Hi".

جرب هذا =)

String s1 = "this\r\nis a test";
String s2 = s1.replaceAll("(\\r|\\n)", "");
System.out.println(s2);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top