2009-04-08 4 views
5

메신저는 현재 셀에 인라인 문자열을 삽입하기 위해이 같은 것을 사용 :OPENXML 스프레드 시트 셀에 줄 바꿈을 삽입하는 방법은 무엇입니까?

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   
    } 

답변

4

해보십시오 CellValues.String 대신 CellValues.InlineString. "포장 텍스트"로

1) 마크 셀 :

8

당신은 두 가지 일을 할 필요가있다. 기존 스프레드 시트를 템플릿으로 사용하는 경우 스프레드 시트에서 직접이 작업을 수행 할 수 있습니다. 셀을 마우스 오른쪽 버튼으로 클릭하고 "서식 셀 .."을 선택하고 " 맞춤"탭을 클릭 한 다음 "줄 바꿈 문자"확인란을 선택하십시오.
또는 프로그래밍 방식으로 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을"을 사용하지 않아야합니다 : 당신이 "CF"라는 CellFormat 객체가있는 경우, 당신은 이런 식으로 뭔가를 할 것입니다
"\ r"과 "\ r \ n"을 제외하고 "\ n"을 혼합하는 경우 수정해야합니다. 셀 값을 채우기 전에 :

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

나 자신은 CellValues.String 또는 CellValues.InlineString을 사용하지 마십시오.
대신 Excel 에서처럼 CellValues.SharedString을 사용하여 텍스트 셀을 만듭니다.
Bool의 경우 "CellValues.Boolean"을 사용하고 다른 숫자 (숫자 및 날짜)의 경우 셀의 데이터 유형을 설정하지 않습니다. 이는 생성 된 태그를 Excel에서 보는 것입니다.

+0

주어진 셀에'CellFormat' 객체 또는'Alignment' 객체를 어떻게 적용합니까? – Panzercrisis

+0

이것은 나를 위해 작동하지 않습니다. 난 그냥 \ r \ n 라인에 오류가 발생하고 엑셀은 텍스트가 손상되었다고 말하는 것으로 시트를 열지 않을 것이다. – johnstaveley