Excelでは、罫線は個々のセルまたはセル範囲の周囲に描かれる線です。この罫線は、グリッド線とは異なり、既定ではセルに適用されません。場合によっては、Excelのワークシートで目立たせるために、特定のセルに罫線を追加する必要があることがあります。この記事では、無料のFree Spire.XLS for Javaを使用して、JavaでExcelのセルの罫線を追加または削除する方法について説明します。
【依存関係の追加】
この方法は、無料のFree Spire.XLS for Javaが必要ですので、先にjarファイルをインポートしてください。
1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに 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. 公式サイトよりJarファイルをダウンロード
まず、Free Spire.XLS for Java の公式サイトよりzipファイルをダウンロードします。zipファイルを解凍し、libフォルダの下にあるSpire.Xls.jarファイルを依存関係としてプロジェクトにインポートしてください。
Excelワークシートのセルにボーダーを追加する
Free Spire.XLS for 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) | すべての罫線の色を設定するために使用します。 |
次の例では、個々のセルまたはセルの範囲に異なる罫線を設定する方法について説明します。
Java
import com.spire.xls.*;
import com.spire.xls.collections.BordersCollection;
import java.awt.*;
public class addCellBorders {
public static void main(String []args){
//Workbookクラスのインスタンスを作成する
Workbook workbook = new Workbook();
//最初のワークシートを取得する
Worksheet sheet = workbook.getWorksheets().get(0);
//セル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);
//セル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);
//セルD6に外枠を設定する
CellRange range3 = sheet.getCellRange("D6");
range3.borderAround(LineStyleType.Double, Color.green);
//セル範囲E8:F10に内枠を設定する
CellRange range4 = sheet.getCellRange("E8:F10");
range4.borderInside(LineStyleType.MediumDashed, Color.darkGray);
//セル範囲F12:G14の内側と外側の枠を設定する
CellRange range5 = sheet.getCellRange("F12:G14");
range5.borderInside(LineStyleType.MediumDashed, Color.pink);
range5.borderAround(LineStyleType.Medium, Color.magenta);
//セル範囲G16:H18のすべての罫線を設定する
CellRange range6 = sheet.getCellRange("G16:H18");
BordersCollection range6Borders = range6.getBorders();
range6Borders.setLineStyle(LineStyleType.Thick);
range6Borders.setColor(Color.cyan);
//斜め罫線のスタイルを設定する
range6Borders.getByBordersLineType(BordersLineType.DiagonalDown).setLineStyle(LineStyleType.Dotted);
range6Borders.getByBordersLineType(BordersLineType.DiagonalUp).setLineStyle(LineStyleType.Dotted);
//結果ファイルを保存する
workbook.saveToFile("罫線の設定.xlsx", ExcelVersion.Version2013);
}
}
【出力されるExcelファイル】
Excelワークシートのセルの罫線を削除する
個々のセルやセル範囲から罫線を削除するには、BordersCollection.setLineStyle(LineStyleType)メソッドを使用して、罫線のスタイルを LineStyleType.None として設定するだけです。
次の例では、特定のセルからセルの境界線を削除する方法を説明します。
Java
import com.spire.xls.*;
public class removeCellBorders {
public static void main(String []args){
//Workbookクラスのインスタンスを作成する
Workbook workbook = new Workbook();
//作成したExcelファイルを読み込む
workbook.loadFromFile("罫線の設定.xlsx");
//最初のワークシートを取得する
Worksheet sheet = workbook.getWorksheets().get(0);
//セルB2の罫線を削除する
CellRange range = sheet.getCellRange("B2");
range.getBorders().setLineStyle(LineStyleType.None);
//結果ファイルを保存する
workbook.saveToFile("罫線の削除.xlsx", ExcelVersion.Version2013);
}
}
【出力されるExcelファイル】
Excelワークシートでセルの罫線を追加または削除する方法について説明します。この記事を読んでもまだ問題がある場合、またはExcelファイルの処理技能についてもっと知りたい場合は、Spire.XLS Forumに移動してください。