我想在电子表格中为范围添加边框。根据一些VB代码here,我尝试了这个:
Range range = locationWorksheet.Cells.CreateRange(7, 0, 93, 6);
range.SetOutlineBorder(BorderType.TopBorder, CellBorderType.Thick, Color.Blue);
range.SetOutlineBorder(BorderType.BottomBorder, CellBorderType.Thick, Color.Blue);
range.SetOutlineBorder(BorderType.LeftBorder, CellBorderType.Thick, Color.Blue);
range.SetOutlineBorder(BorderType.RightBorder, CellBorderType.Thin, Color.Red);
...但它将大部分数据推向了工作表,如下所示:
......在这里:
这是在添加这些边框之前工作表的样子。
实际上,我也想要内部边界,不仅仅是边缘,而是首先要做的事情。
顺便说一下,它看起来也像一个非常昂贵的#34;操作 - 报告需要花费更长的时间才能生成添加了硼化代码。我能够让它更好地工作,但它仍然弄乱了我的格式。使用此代码:
private void BorderizeDataPortionOfLocationSheet()
{
int FUDGE_FACTOR = 5;
int rowsUsed = locationWorksheet.Cells.Rows.Count + FUDGE_FACTOR;
int colsUsed = locationWorksheet.Cells.Columns.Count; //QTY_COL; // last column
string rangeBegin = RoboReporterConstsAndUtils.GetRangeLettersNumbersAsStr(1, 8);
string rangeEnd = RoboReporterConstsAndUtils.GetRangeLettersNumbersAsStr(6, rowsUsed);
Range entireSheetRange = locationWorksheet.Cells.CreateRange(rangeBegin, rangeEnd);
CellsFactory cf = new CellsFactory();
Style style = cf.CreateStyle();
entireSheetRange.SetStyle(style);
entireSheetRange.SetOutlineBorders(CellBorderType.Thin, Color.Black);
}
...我正在获得一个不会将数据推到表格中的边框:
但是当我的范围无边框时,你可以看到我的漂亮格式,
我如何获得边框并保留格式?
答案 0 :(得分:1)
将大纲边框应用于范围的代码是正确的,因为我已针对最新版本的Aspose.Cells for .NET 17.1.0(可通过NuGet和Aspose下载部分获得)进行测试。请注意,设置轮廓边框不应该干扰单元格的现有格式,因为Range.SetOutlineBorder仅在边框上运行,但是,如果您希望将边框应用于范围中的每个单独单元格,则可以覆盖现有格式。
我将发布示例代码以及输入&在Aspose.Cells支持论坛中创建的线程上输出电子表格,我谦卑地请求您在Aspose.Cells支持论坛中与可执行代码共享您的输入电子表格,以便在问题仍然存在的情况下进行进一步调查。
var book = new Workbook(dataDir + "book1.xlsx");
var sheet = book.Worksheets[0];
var range = sheet.Cells.MaxDisplayRange;
//Setting outline border to range
range.SetOutlineBorder(BorderType.TopBorder, CellBorderType.Thick, Color.Blue);
range.SetOutlineBorder(BorderType.BottomBorder, CellBorderType.Thick, Color.Blue);
range.SetOutlineBorder(BorderType.LeftBorder, CellBorderType.Thick, Color.Blue);
range.SetOutlineBorder(BorderType.RightBorder, CellBorderType.Thin, Color.Red);
book.Save(dataDir + "output.xlsx");
注意:我在Aspose担任开发人员传播者。