Java如何设置Excel所有单元格样式
介绍
在处理Excel文件时,我们经常需要设置单元格的样式,例如字体、颜色、边框等。Java提供了一种强大的库,即Apache POI,可用于处理Excel文件。本文将介绍如何使用Apache POI设置Excel中所有单元格的样式。
前提条件
在开始之前,请确保已经安装了Java Development Kit (JDK) 和 Apache POI库。
步骤1:创建工作簿
首先,我们需要创建一个工作簿对象,用于表示Excel文件。可以使用XSSFWorkbook
类创建一个新的工作簿。以下是创建工作簿的示例代码:
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
public class ExcelStylingExample {
public static void main(String[] args) {
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet("Sheet1");
// 设置单元格样式
// ...
// 保存工作簿
// ...
}
}
步骤2:设置单元格样式
接下来,我们可以设置单元格的样式。样式可以应用于整个工作簿、工作表、单元格等级别。下面是设置所有单元格样式的示例代码:
// 创建单元格样式
CellStyle cellStyle = workbook.createCellStyle();
// 设置字体样式
Font font = workbook.createFont();
font.setFontName("Arial");
font.setFontHeightInPoints((short) 12);
font.setBold(true);
font.setColor(IndexedColors.RED.getIndex());
cellStyle.setFont(font);
// 设置背景颜色
cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// 设置边框
cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);
// 设置对齐方式
cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 应用样式到所有单元格
int rowCount = sheet.getLastRowNum();
for (int i = 0; i <= rowCount; i++) {
Row row = sheet.getRow(i);
int cellCount = row.getLastCellNum();
for (int j = 0; j < cellCount; j++) {
Cell cell = row.getCell(j);
cell.setCellStyle(cellStyle);
}
}
步骤3:保存工作簿
最后一步是将工作簿保存到Excel文件中。使用FileOutputStream
将工作簿写入文件。以下是保存工作簿的示例代码:
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelStylingExample {
public static void main(String[] args) {
// 创建工作簿和设置样式
Workbook workbook = new XSSFWorkbook();
// ...
// 保存工作簿
try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
}
完整示例代码
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelStylingExample {
public static void main(String[] args) {
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet("Sheet1");
// 创建单元格样式
CellStyle cellStyle = workbook.createCellStyle();
// 设置字体样式
Font font = workbook.createFont();
font.setFontName("Arial");
font.setFontHeightInPoints((short) 12);
font.setBold(true);
font.setColor(IndexedColors.RED.getIndex());
cellStyle.setFont(font);
// 设置背景颜色
cellStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// 设置边框
cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setBorderRight(BorderStyle.THIN);
// 设置对齐方式
cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 应用样式到所有单元格
int rowCount = sheet.getLastRowNum();
for (int i = 0; i <= rowCount; i++)