2012-05-11 2 views
3

で作成されたXML Excelドキュメントのセルに複数行のテキスト値が表示される状況:私はC#.Net 4.0 Winformを作成して、ユーザーが選択したフィルタを使用してOracle DBからデータテーブルを収集しますチェックするためにGridviewプレビューに。データを好きなようにフィルタリングすると、エクスポートボタンがクリックされ、ダブルクリックするとExcelで開くXMLドキュメントにデータテーブルが変換されます。ファイルは、CVS、単一のライン上のすべてのテキストとcompletly未フォーマットのワークシートをした場合は、それらを思わどのように似てExcelでレコードを表示C#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

あなたには、いくつかの複数行のContantを持つ単純なExcelファイルを作成し、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、 "General 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

になります。質問を更新してコードを投稿してください:コメントよりも読みやすくなります。 –

関連する問題