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.inlinestring 대신 CellValues.string을 시도하십시오.

다른 팁

두 가지 작업을 수행해야합니다.

1.) 셀을 "포장 된 텍스트"로 표시하십시오. 기존 스프레드 시트를 템플릿으로 사용하는 경우 스프레드 시트 에서이 작업을 수행 할 수 있습니다. 셀을 마우스 오른쪽 버튼으로 클릭하고 "선택하십시오.형식 셀 ..","클릭 "조정"탭과 확인"텍스트를 랩합니다"확인란.
또는... 셀 포름을 프로그래밍 방식으로 설정할 수 있습니다. "라는 셀 포름 객체가있는 경우"cf ", 당신은 다음과 같은 일을 할 것입니다.

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"
두 가지를 혼합하고 있다면 (예 : " r"및 " r n"이없는 경우 (예 : " n") 셀 값을 채우기 전에 고정해야합니다.

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

나 자신은 사용하지 않습니다 CellValues.String 또는 CellValues.inlinestring.
대신 나는 텍스트 셀을 사용하여 구축합니다 CellValues.Sharedstring (Excel처럼).
내가 사용하는 bool "CellValues.Boolean", 그리고 다른 모든 사람들 (숫자와 날짜)을 위해 나는 셀을 설정하지 않습니다. 데이터 형식 무엇이든 - 그것이 내가 만든 마크 업을 볼 때 Excel이하는 일이기 때문입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top