如何在电子表格范围(Aspose Cells)周围添加边框?

时间:2017-01-12 19:17:44

标签: excel border aspose aspose-cells

我想在电子表格中为范围添加边框。根据一些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);

...但它将大部分数据推向了工作表,如下所示:

enter image description here

......在这里:

enter image description here

这是在添加这些边框之前工作表的样子。

enter image description here

实际上,我也想要内部边界,不仅仅是边缘,而是首先要做的事情。

顺便说一下,它看起来也像一个非常昂贵的#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);
}

...我正在获得一个不会将数据推到表格中的边框:

enter image description here

但是当我的范围无边框时,你可以看到我的漂亮格式,

enter image description here

我如何获得边框并保留格式?

1 个答案:

答案 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担任开发人员传播者。