JAVA导出Excel并合并单元格
时间: 2023-08-19 17:35:49 浏览: 42
以下是使用Java导出Excel并合并单元格的示例代码:
```java
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelExportDemo {
public static void main(String[] args) throws Exception {
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
// 创建工作表
XSSFSheet sheet = (XSSFSheet) workbook.createSheet("Sheet1");
// 创建单元格样式
XSSFCellStyle style = (XSSFCellStyle) workbook.createCellStyle();
// 设置单元格对齐方式
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
// 创建字体
XSSFFont font = (XSSFFont) workbook.createFont();
font.setFontName("宋体");
font.setFontHeightInPoints((short) 14);
font.setBold(true);
// 设置字体颜色
font.setColor(IndexedColors.BLACK.getIndex());
// 将字体应用到单元格样式
style.setFont(font);
// 创建单元格合并区域
CellRangeAddress region = new CellRangeAddress(0, 0, 0, 3);
// 将单元格合并到工作表中
sheet.addMergedRegion(region);
// 创建表头行
List<String> headers = new ArrayList<>();
headers.add("序号");
headers.add("姓名");
headers.add("年龄");
headers.add("性别");
// 创建表头单元格
for (int i = 0; i < headers.size(); i++) {
sheet.createRow(1).createCell(i).setCellValue(headers.get(i));
}
// 写入数据
for (int i = 0; i < 10; i++) {
sheet.createRow(i + 2).createCell(0).setCellValue(i + 1);
sheet.getRow(i + 2).createCell(1).setCellValue("张三" + i);
sheet.getRow(i + 2).createCell(2).setCellValue(20 + i);
sheet.getRow(i + 2).createCell(3).setCellValue("男");
}
// 设置表头样式
for (int i = 0; i < headers.size(); i++) {
sheet.getRow(1).getCell(i).setCellStyle(style);
}
// 设置列宽
for (int i = 0; i < headers.size(); i++) {
sheet.setColumnWidth(i, 20 * 256);
}
// 输出Excel文件
FileOutputStream outputStream = new FileOutputStream("test.xlsx");
workbook.write(outputStream);
outputStream.close();
workbook.close();
}
}
```
这段代码将创建一个名为“Sheet1”的Excel工作表,并在第一行合并四个单元格,作为表头。然后,它将在第二行创建表头单元格,并在第三行及以下写入数据。最后,将输出Excel文件“test.xlsx”。