Java-在Excel中添加或删除单元边界
#java #excel #borders

在Excel中,边界是围绕单个细胞或一系列细胞绘制的线。与网格线不同,默认情况下,边界不会应用于单元格。在某些情况下,您可能需要在某些单元格中添加边界,以使它们在Excel工作表中脱颖而出。在本文中,您将学习如何使用Free Spire.XLS for Java在Java中添加或删除Excel中的单元边界。

添加依赖项

方法1:如果使用Maven,可以通过将以下代码添加到项目的pom.xml文件中,轻松地将JAVA API的JAR文件导入了您的应用程序。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.xls.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

方法2:如果您不使用Maven,则可以从official website下载java的free spire.xls,提取zip文件,然后在lib下导入spire.xls.jar文件作为依赖性的文件夹。

在Java中的Excel中添加细胞边界

free spire.xls Java支持在Excel中的细胞中添加各种边界,例如左边框,右边框,顶部边框,底部边框,对角线向上边框,对角线向下边框,边界内部或外部边界。

您可以为单元格设置特定边界或为单元格设置所有边界。以下是用于实现此功能的主要方法:

  • cellrange.getBorders()访问单个单元或一系列单元的边界集合。
  • BordersCollection.getByBorderSlineType(BorderSlineType)访问特定边框,例如,左,右,顶,底部,底部,对角线或对角线向下。
  • iborder.setlinestyle(linestyletype)设置特定边框的线样式。
  • iborder.setColor(color)设置特定边框的颜色。
  • cellrange.borderinside(linestyletype,color) '将内部边界添加到具有指定线样式和颜色的一系列单元格。
  • cellrange.borderaround(linestyletype,color) '将外部边界添加到单个单元格或具有指定线样式和颜色的一系列单元格。
  • borderscollection.setlinestyle(linestyletype)设置所有边界的线样式。
  • borderscollection.setColor(color)设置所有边界的颜色。 以下示例说明了如何为单个单元或一系列单元设置不同边界:
import com.spire.xls.*;
import com.spire.xls.collections.BordersCollection;

import java.awt.*;

public class AddCellBorders {
    public static void main(String []args){
        //Create a Workbook instance
        Workbook workbook = new Workbook();
        //Get the first worksheet
        Worksheet sheet = workbook.getWorksheets().get(0);

        //Set particular borders (left, right, top, bottom and diagonal up) for cell B2
        CellRange range1 = sheet.getCellRange("B2");
        BordersCollection cellB2Borders = range1.getBorders();
        cellB2Borders.getByBordersLineType(BordersLineType.EdgeLeft).setLineStyle(LineStyleType.MediumDashDotDot);
        cellB2Borders.getByBordersLineType(BordersLineType.EdgeLeft).setColor(Color.red);
        cellB2Borders.getByBordersLineType(BordersLineType.EdgeRight).setLineStyle(LineStyleType.MediumDashed);
        cellB2Borders.getByBordersLineType(BordersLineType.EdgeRight).setColor(Color.red);
        cellB2Borders.getByBordersLineType(BordersLineType.EdgeTop).setLineStyle(LineStyleType.Medium);
        cellB2Borders.getByBordersLineType(BordersLineType.EdgeTop).setColor(Color.red);
        cellB2Borders.getByBordersLineType(BordersLineType.EdgeBottom).setLineStyle(LineStyleType.MediumDashDot);
        cellB2Borders.getByBordersLineType(BordersLineType.EdgeBottom).setColor(Color.red);
        cellB2Borders.getByBordersLineType(BordersLineType.DiagonalUp).setLineStyle(LineStyleType.Thin);
        cellB2Borders.getByBordersLineType(BordersLineType.DiagonalUp).setColor(Color.red);

        //Set diagonal up and diagonal down borders for cell C4
        CellRange range2 = sheet.getCellRange("C4");
        BordersCollection borders2 = range2.getBorders();
        borders2.getByBordersLineType(BordersLineType.DiagonalUp).setLineStyle(LineStyleType.Double);
        borders2.getByBordersLineType(BordersLineType.DiagonalUp).setColor(Color.blue);
        borders2.getByBordersLineType(BordersLineType.DiagonalDown).setLineStyle(LineStyleType.Double);
        borders2.getByBordersLineType(BordersLineType.DiagonalDown).setColor(Color.blue);

        //Set outside border for cell D6
        CellRange range3 = sheet.getCellRange("D6");
        range3.borderAround(LineStyleType.Double, Color.green);

        //Set inside borders for cell range E8:F10
        CellRange range4 = sheet.getCellRange("E8:F10");
        range4.borderInside(LineStyleType.MediumDashed, Color.darkGray);

        //Set inside and outside borders for cell range F12:G14
        CellRange range5 = sheet.getCellRange("F12:G14");
        range5.borderInside(LineStyleType.MediumDashed, Color.pink);
        range5.borderAround(LineStyleType.Medium, Color.magenta);

        //Set all borders for cell range G16:H18
        CellRange range6 = sheet.getCellRange("G16:H18");
        BordersCollection range6Borders = range6.getBorders();
        range6Borders.setLineStyle(LineStyleType.Thick);
        range6Borders.setColor(Color.cyan);
        //Set line style of diagonal borders
        range6Borders.getByBordersLineType(BordersLineType.DiagonalDown).setLineStyle(LineStyleType.Dotted);
        range6Borders.getByBordersLineType(BordersLineType.DiagonalUp).setLineStyle(LineStyleType.Dotted);

        //Save the result file
        workbook.saveToFile("SetBorders.xlsx", ExcelVersion.Version2013);
    }
}

Add cell borders in Excel using Java

在Java中删除Excel中的单元边界

要从单个单元格或一系列单元格中删除边界,您只需要将其边界的线样式设置为linestyletype.none使用 borderscollection.setlinestyle(linestyletype) methot。

以下示例说明了如何从特定单元格中删除细胞边界:

import com.spire.xls.*;

public class RemoveCellBorders {
    public static void main(String []args){
        //Create a Workbook instance
        Workbook workbook = new Workbook();
        //Load an Excel file
        workbook.loadFromFile("SetBorders.xlsx");
        //Get the first worksheet
        Worksheet sheet = workbook.getWorksheets().get(0);

        //Remove the borders of cell B2
        CellRange range = sheet.getCellRange("B2");
        range.getBorders().setLineStyle(LineStyleType.None);

        //Save the result file
        workbook.saveToFile("RemoveBorders.xlsx", ExcelVersion.Version2013);
    }
}