3

情况:我正在创建一个 C# .Net 4.0 Winform 以使用用户选择的过滤器从 Oracle DB 收集数据表,并将它们放入 Gridview 预览中进行检查。一旦他们根据自己的喜好过滤了数据,他们就会单击导出按钮,该按钮将数据表转换为 XML 文档,双击该文档会在 Excel 中打开。在 XML excel 文件中,每条记录如下所示:

  <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 中显示的记录类似于文件是 CVS 时的显示方式,这是一个完全未格式化的工作表,所有文本都在一行上。很明显,在 XML 文件中保留了换行符,但 Excel 表是供用户编辑数据的,所以我需要显示我收到它的文本(即,如果是这种情况,则显示多行)。

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

4

1 回答 1

4

如果您创建一个包含多行内容的简单 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>

于 2012-05-11T16:14:09.000 回答