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

本文关键字:单元格 显示 文本 文档 Excel XmlWriter XML 创建 | 更新日期: 2023-09-27 18:33:50

情况:我正在创建一个C# .Net 4.0 Winform,以使用用户选择的筛选器从Oracle DB收集数据表,并将它们放入Gridview预览中进行检查。根据自己的喜好过滤数据后,他们单击导出按钮,该按钮将数据表转换为双击时在Excel中打开的XML文档。在 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文件以在多行上显示其单元格内容(并可能增加单元格高度以匹配(?

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

如果您创建一个带有一些多行连接的简单 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>