Как вставить разрыв строки в ячейку электронной таблицы 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.Строка вместо CellValues.InlineString.

Другие советы

Вам нужно сделать две вещи:

1.) Пометьте ячейку как "Обернутый текст".Вы можете сделать это в электронной таблице вручную, если используете существующую электронную таблицу в качестве шаблона.Просто щелкните правой кнопкой мыши на ячейке (ячейках) и выберите "Форматирование ячеек..", нажмите на кнопку "Выравнивание" внесите вкладку и проверьте "Перенос текста" флажок.
или... Вы можете установить формат ячейки программно.Если у вас есть объект 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"), это должно исправить это перед заполнением значения ячейки:

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

Я сам не использую Значения ячеек.Строка или даже Значения ячеек.Встроенная строка.
Вместо этого я создаю свои текстовые ячейки, используя Значения ячеек.Общая строка (точно так же, как это делает Excel).
Для Bool я использую "Значения ячеек.Логическое значение", и для всех остальных (цифр и дат) Я не устанавливаю размер ячейки Тип данных к чему угодно - потому что это то, что делает Excel, когда я смотрю на создаваемую им разметку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top