我正在尝试使用 SpreadsheetML 生成 Excel 报告服务器端并通过浏览器下载报告。我一切正常,正在下载我需要的文件。但是,当我尝试在我正在创建的一张工作表中合并单元格时遇到了问题。我在网上找到了两种不同的语法并尝试了它们都没有成功。我将文件保存为 .xml 文件,并且将打开并显示预期数据,但单元格未合并。
第一种语法在元素上使用“mergeAcross”限定符,并且应该将指定的单元格数量合并到当前单元格中。使用元素的第二种语法。我已经为这两种尝试粘贴了下面的实际 xml 代码。如果我能弄清楚 XML 应该是什么,那么我可以很容易地以编程方式创建它。
版本 1
<?xml version='1.0'?>
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<ss:Worksheet ss:Name='Distribution List Overview'>
<ss:Table>
<ss:Row>
<ss:Cell mergeAcross="2"><ss:Data ss:Type="String">First Cell Entry</ss:Data></ss:Cell>
<ss:Cell><ss:Data ss:Type="String">Third Cell</ss:Data></ss:Cell>
</ss:Row>
</ss:Table>
</ss:Worksheet>
</ss:Workbook>
版本 1
<?xml version='1.0'?>
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<ss:Worksheet ss:Name='Distribution List Overview'>
<ss:Table>
<ss:Row>
<ss:Cell><ss:Data ss:Type="String">First Cell Entry</ss:Data></ss:Cell>
<ss:Cell><ss:Data ss:Type="String">Third Cell</ss:Data></ss:Cell>
</ss:Row>
</ss:Table>
<mergeCells count="2">
<mergeCell ref="A1:B1"/>
</mergeCells>
</ss:Worksheet>
</ss:Workbook>
上述两种方法都无法创建合并单元格。我期待在单元格 C1 中用“第三个单元格”填充单元格 A1 和 B1 的“第一个单元格条目”。相反,我在单元格 A1 中得到“第一个单元格条目”,在单元格 B1 中得到“第三个单元格”。任何帮助或建议将不胜感激。这是我需要让一些遗留代码正常工作的唯一剩余项目,我不想将整个报告转换为 OpenXML SDK 代码。
最佳答案
尝试替换 mergeAcross
与 ss:MergeAcross
.换句话说,使用:
<ss:Cell ss:MergeAcross="2"><ss:Data ss:Type="String">First Cell Entry</ss:Data></ss:Cell>
此外,您可能会注意到要获得“A1:B1”合并单元格,您需要设置
ss:MergeAcross
值为 1,而不是 2。
关于excel - 如何在 SpreadsheetML 中指定合并的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54716052/