4

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

表格单元格

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);
...
4

4 回答 4

4

打电话

ws.Cells[row, col].Style.Border.BorderAround(ExcelBorderStyle.Thin);
于 2017-09-12T18:26:52.500 回答
2

与其绘制白色边框来覆盖默认的灰色网格线,不如只隐藏工作表的网格线。要通过代码执行此操作,您需要在 SheetView 中将 ShowGridLines 属性设置为 False,就像这个 SO answer中的代码一样。

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

于 2017-09-13T11:37:14.307 回答
1

另一种解决方案是从所有网格线都涂成白色的工作表开始。这里的第一个项目符号向您展示了如何使用 Excel 执行此操作。要在空白工作簿上执行此操作,请使用以下代码:

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

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

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

于 2017-09-13T21:26:23.203 回答
0

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

谢谢大家的帮助!

于 2017-09-13T14:52:18.373 回答