我为每个单元格设置边框样式。但仔细观察,你会发现蓝线不连续。垂直线上有一些白色哈希标记。因为在表格内部,我将顶部和底部单元格边框设置为白色。谁知道如何避免这种情况?
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);
...
答案 0 :(得分:3)
致电
ws.Cells[row, col].Style.Border.BorderAround(ExcelBorderStyle.Thin);
答案 1 :(得分:2)
而不是绘制白色边框以掩盖默认的灰色网格线,而应该只是hide the grid lines of your worksheet。要通过代码执行此操作,您需要设置ShowGridLines property to False in the SheetView,就像this SO answer中的代码一样。
然后删除为解决方案添加白色边框的代码,并留下蓝色边框的代码。这将消除蓝色边框中的白色碎片。
答案 2 :(得分:1)
另一种解决方案是从工作表开始,其中所有网格线都是白色的。 The first bullet here向您展示如何使用Excel执行此操作。要在空白工作簿上执行此操作,请使用以下代码:
sheetView1.DefaultGridColor = false;
sheetView1.ColorId = 9U;
According to the docs,这些属性告诉excel不要将网格线绘制为默认颜色,而是使用颜色索引9。 9对应于空白Excel工作簿中的白色指数。默认情况下,它会使所有单元格都具有白色网格线颜色。
然后,您将删除任何将任何单元格边框涂成白色的现有代码,并保留将单元格边框涂成蓝色的代码。这是删除原始问题中的白色哈希标记的另一种方法。
答案 3 :(得分:0)
Taterhead的解决方案很不错。我在这里有另一个。不要绘制白色边框,只需将单元格范围的背景颜色设置为白色。
感谢大家的帮助!