كيفية إدراج استراحة السطر داخل خلية جدول بيانات OpenXML؟

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

سؤال

أنا الآن باستخدام شيء من هذا القبيل لإدراج سلسلة مضمنة في خلية:

new Cell() 
{ 
    CellReference = "E2", 
    StyleIndex = (UInt32Value)4U, 
    DataType = CellValues.InlineString, 
    InlineString = new InlineString(new Text( "some text")) 
}

ولكن \n لا يعمل لإدراج استراحة السطر، كيف يمكنني القيام بذلك؟


الإجابة

new Cell(
         new CellValue("string \n string")
        ) 
    { 
        CellReference = "E2", 
        StyleIndex = (UInt32Value)4U, 
        DataType = CellValues.String         
    }
هل كانت مفيدة؟

المحلول

جرب cellvalues.string بدلا من cellvalues.inlinestring.

نصائح أخرى

تحتاج إلى القيام بأمرين:

1.) حدد الخلية باسم "النص ملفوف". يمكنك القيام بذلك في جدول البيانات باليد إذا كنت تستخدم جدول بيانات موجود كقالب الخاص بك. فقط انقر بزر الماوس الأيمن فوق الخلية (S) وحدد "تنسيق الخلايا.."، اضغط على "انتقام"علامة تبويب وتحقق من"دوران النصمربع الاختيار.
أو... يمكنك ضبط CellFormat برمجيا. إذا كان لديك كائن CellFormat يسمى "راجع "، سوف تفعل شيئا مثل هذا:

cf.ApplyAlignment = true;//Set this so that Excel knows to use it.
if (cf.Alignment == null)//If no pre-existing Alignment, then add it.
  cf.Alignment = new Alignment() { WrapText = true };
Alignment a = cf.Alignment;
if (a.WrapText == null || a.WrapText.Value == false)
  a.WrapText = new BooleanValue(true);//Update pre-existing Alignment.

2.) يجب ألا تستخدم " n"، بدلا من ذلك، يجب أن تستخدم تركيبة موجز إرجاع النقل + " r n"
إذا كنت تختلط اثنين (أي " n" دون مسبق " r" و " r n")، وهذا يجب إصلاحه قبل ملء قيمة الخلية:

sHeaderText = sHeaderText.Replace("\r\n", "\n").Replace("\n", "\r\n");

أنا، نفسي، لا تستخدم cellvalues.string. او حتى cellvalues.inlinestring..
بدلا من ذلك، أقوم ببناء خلايا النص الخاصة بي باستخدام cellvalues.sharedstring. (تماما مثل Excel يفعل).
للحصول على bool أنا استخدم "cellvalues.boole."، ولكل الآخرين (العدد والتواريخ) لا أقوم بتعيين الخلية نوع البيانات إلى أي شيء - لأن هذا هو ما يفعله Excel عندما أنظر إلى العلامة، فإنه ينشئ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top