合并单元格上的OpenXML SDK边框仅应用于第一个单元格

时间:2015-11-05 23:37:12

标签: c# excel openxml openxml-sdk

使用OpenXML SDK将边框应用于合并的单元格范围时,边框仅显示合并范围中的第一个(左上角)单元格。我完全不知道,这让我发疯。使用生产力工具,我无法找到任何有意义的差异,我所拥有的东西以及按预期工作的东西。这是我为样式表生成的XML:

    <x:borders count="2" xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
      <x:border>
        <x:left />
        <x:right />
        <x:top />
        <x:bottom />
        <x:diagonal />
      </x:border>
      <x:border>
        <x:left />
        <x:right />
        <x:top />
        <x:bottom style="thick">
          <x:color auto="1" />
        </x:bottom>
        <x:diagonal />
      </x:border>
    </x:borders>
    <x:cellXfs xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
      <x:xf fontId="0" />
      <x:xf fontId="1" fillId="2" applyFont="1" applyFill="1" />
      <x:xf borderId="1" applyBorder="1" />
    </x:cellXfs>

我已尝试过所有内容,在边界之前,之后等应用合并

1 个答案:

答案 0 :(得分:6)

我已经想到了这一点。我的印象是,如果将样式应用于一组合并单元格中的左上角单元格,则表示该样式将应用于整个合并。我发誓我读了一些说的文件,但显然并非如此。有效的是我将边框样式应用于合并范围中的每个单元格,而不仅仅是第一个单元格。

对我来说,我最初拥有它的方式甚至被允许,这似乎很奇怪,考虑到生成的输出除了通过OpenXML SDK之外无法再现。