2012-05-11 1 views
3

상황 : 사용자가 선택한 필터를 사용하여 Oracle DB에서 데이터 테이블을 수집하고 배치하는 C# .Net 4.0 Winform을 만듭니다. 체크 아웃 Gridview 미리보기로. 원하는대로 데이터를 필터링하면 데이터 단추를 두 번 클릭하면 Excel에서 열리는 XML 문서로 변환하는 내보내기 단추를 클릭합니다. 파일이 CVS, 한 줄에 모든 텍스트와 completly 포맷되지 않은 워크 시트를한다면 당신이 그들을 것 같다 방식과 유사 Excel에서 레코드를 표시는 C#으로 작성된 XML Excel 문서의 셀에 여러 줄 텍스트 값을 표시합니다. XmlWriter

<ss:Row> 
    <ss:Cell ss:StyleID="General"> 
     <ss:Data ss:Type="String">110002</ss:Data> 
    </ss:Cell> 
    <ss:Cell ss:StyleID="General"> 
     <ss:Data ss:Type="String">GALV.047M X 3 G90 A653 PASSDRY SQ GR33</ss:Data> 
    </ss:Cell> 
    <ss:Cell ss:StyleID="General"> 
     <ss:Data ss:Type="String">.047 MIN X 3 X COIL 
!GALV G90 ASTM A 653 SQ GR33 PASS DRY* 

20" ID 
5 TON MAX LIFT 
SKID EYE TO THE SKY 
3" X 3" SPACER IN BETWEEN EACH BUNDLE 
SUPPLY TEST REPORTS CHEMICAL</ss:Data> 
    </ss:Cell> 
    </ss:Row> 

다음 XML 내부에서 각 레코드에 그렇게 보이는 파일을 엑셀. 분명히 XML 파일 안의 줄 바꿈은 보존되지만 Excel 시트는 사용자가 데이터를 편집 할 수 있도록하기 때문에 텍스트를 표시하는 방법 (예 : 여러 줄을 입력하는 경우)을 텍스트로 표시해야합니다.

질문 : XML 파일의 데이터 서식이 지정된 방식으로 내 보낸 XML 파일의 서식을 여러 줄로 표시하고 일치시킬 셀 높이를 늘리려면 어떻게해야합니까?

+0

writer.WriteCData()를 writer.WriteValue() 대신 C#으로 사용하여 트릭을 수행했습니다! – Adamantine

답변

4

일부 멀티 라인의 상수와 간단한 엑셀 파일을 생성하고 XML로 저장하는 경우는 출력에서 ​​볼 수 있습니다

태그에서

<Style ss:ID="s62"> 
    <Alignment ss:Vertical="Bottom" ss:WrapText="1"/> 
</Style> 

세포 XML :

<Cell ss:StyleID="s62"> <Data ss:Type="String">First Line&#10;Second Line&#10;Last Line</Data> </Cell>

+0

내 C# 프로그램에서 이렇게 내 스타일을 삽입하십시오. \t _writer.WriteStartElement ("Styles", "urn : schemas-microsoft-com : office : spreadsheet"); WriteExcelStyleElement (CellStyle.General); WriteExcelStyleElement (CellStyle.Number, "일반 번호"); WriteExcelStyleElement (CellStyle.DateTime, "General Date"); WriteExcelStyleElement (CellStyle.Currency, "Currency"); WriteExcelStyleElement (CellStyle.ShortDate, "Short Date"); _writer.WriteEndElement(); 언급 한 스타일을 추가하려면 어떻게 변경해야합니까? 나는 XML 세포 라인을 추가하고 내가 같은 문자열이있을 때 – Adamantine

+0

또한, : FIRSTLINE SecondLine lastLine을을 어떻게 내가 대신 \ n의 그에게 을 추가하는 방법은 무엇입니까? 다음 줄이 있습니다. ToValid = ToValid.Replace ("\ n", "\ n \ n"); 그러나 결과 XML의 앰퍼샌드는 & – Adamantine

+0

으로 바뀝니다. 질문을 업데이트하여 코드를 게시하십시오. 주석보다 읽기가 훨씬 쉽습니다. –

관련 문제