在用C#XmlWriter创build的XML Excel文档的单元格中显示多行文本值

情况:我正在创build一个C#.Net 4.0 Winform来从Oracle数据库收集一个数据表,使用用户select的filter,并将它们放到一个GridView Preview中检出。 一旦他们已经过滤了他们喜欢的数据,他们点击一个导出button,将数据表转换成一个XML文档,在Excel中打开时双击。 在XML excel文件里面,每条logging都是这样的:

<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> 

在excel中显示logging的方式类似于如果文件是CVS,完整无格式的工作表(所有文本在一行中)的情况,您将如何看待它们。 很明显,在XML文件中保留了换行符,但是excel表单是为了让用户编辑数据,所以我需要显示文本是如何接收的(即如果是多行的话)。

问题:如果XML文件中的数据被格式化,我如何格式化导出的XML文件以在多行上显示它的单元格内容(也许可以增加单元格高度以匹配)?

如果你创build一个简单的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>