【问题标题】:How to apply outline table border to a cell range using OpenXml?如何使用 OpenXml 将大纲表格边框应用于单元格范围?
【发布时间】:2017-09-14 14:55:54
【问题描述】:

我为每个单元格设置边框样式。但如果你仔细观察,你会发现蓝线不是连续的。垂直线上有一些白色的哈希标记。因为在表格内部,我将顶部和底部单元格边框设置为白色。有谁知道如何避免这种情况?

WorksheetPart v_worksheetPart = a_workbookPart.AddNewPart<WorksheetPart>();
v_worksheetPart.Worksheet = new Worksheet();
SheetData v_sheetData = new SheetData();
Row v_Row = new Row();
Cell v_Cell = new Cell();
...
v_Row.Append(v_Cell);
v_sheetData.Append(v_Row);
v_worksheetPart.Worksheet.AppendChild(v_sheetData);
...

【问题讨论】:

    标签: c# border cell openxml spreadsheetml


    【解决方案1】:

    打电话就行了

    ws.Cells[row, col].Style.Border.BorderAround(ExcelBorderStyle.Thin);
    

    【讨论】:

    • 嗨,你能告诉我对象'ws'是什么吗?看起来 OpenXml.Spreadsheet.WorkSheet 不包含属性“单元格”。
    • @Joyin ws 是你的spreadcheat ,是的,它实际上包含......你使用的是什么版本的openXML?你介意发布一些你的代码吗?如果我能看到你正在做的事情的结构,我可以为你提供很多帮助
    • 我使用的是 V2.5。让我尝试发布一些我的代码。
    • @Joyin 感谢您的编辑,我会尽快回复您,如果我知道您想删除奇怪的格式?是的,您的代码有帮助
    • 我发布了一些我的代码。不确定它是否有帮助。非常感谢您提前提供的帮助!
    【解决方案2】:

    不要绘制白色边框来覆盖默认的灰色网格线,而应该只使用hide the grid lines of your worksheet。要通过代码执行此操作,您需要设置 ShowGridLines property to False in the SheetView,就像 this SO answer 中的代码一样。

    然后删除为您的解决方案添加白色边框的代码,并保留蓝色边框的代码。这将删除蓝色边框中的白色中断。

    【讨论】:

    • 嗨,Taterhead,非常感谢您的回答!这也是一个不错的解决方案。唯一的缺点是网格线总是应用于整个工作表或工作簿,不能应用于特定的单元格或范围。
    【解决方案3】:

    另一种解决方案是从所有网格线都涂成白色的工作表开始。 The first bullet here 向您展示如何使用 Excel 执行此操作。要在空白工作簿上执行此操作,请使用以下代码:

      sheetView1.DefaultGridColor = false;
      sheetView1.ColorId = 9U; 
    

    According to the docs,这些属性告诉 excel 不要将网格线绘制为默认颜色,而是使用颜色索引 9。 9 对应于空白 Excel 工作簿中的白色索引。默认情况下,它将使所有单元格具有白色网格线颜色。

    然后,您将删除任何将任何单元格边框涂成白色的现有代码,并留下将您的单元格边框涂成蓝色的代码。这是删除原始问题中白色哈希标记的另一种方法。

    【讨论】:

      【解决方案4】:

      Taterhead 的解决方案是一个不错的解决方案。我这里还有一个。无需绘制白色边框,只需将单元格区域的背景颜色设置为白色即可。

      感谢大家的帮助!

      【讨论】:

      • 别忘了给答案投票,并将最适合您的答案标记为已解决
      • 知道如何设置背景颜色,这样它就不会删除所有边框吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多