一、创建工作簿并添加工作表
在Java中导出Excel,首先要创建一个工作簿,然后添加工作表,最后在工作表中添加内容。
示例代码:
// 创建工作簿 Workbook workbook = new XSSFWorkbook(); // 创建工作表 Sheet sheet = workbook.createSheet("Sheet1");
二、合并单元格
生成的Excel表格可能需要合并单元格,例如合并表头或者合并行或列。在Java中合并单元格非常简单,只需指定需要合并的单元格的起始行、起始列、结束行、结束列即可。
示例代码:
// 合并单元格 CellRangeAddress region = new CellRangeAddress(rowStart, rowEnd, colStart, colEnd); sheet.addMergedRegion(region);
三、设置单元格样式
Java中可以通过设置单元格样式来调整单元格的样式,例如设置字体、颜色、对齐方式等。创建单元格样式后,可以通过CellStyle应用到单元格中。
示例代码:
// 创建单元格样式 CellStyle cellStyle = workbook.createCellStyle(); cellStyle.setAlignment(HorizontalAlignment.CENTER); cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 设置字体 Font font = workbook.createFont(); font.setFontName("宋体"); font.setFontHeightInPoints((short) 12); font.setBold(true); cellStyle.setFont(font); // 应用样式到单元格中 cell.setCellStyle(cellStyle);
四、写入数据并导出
最后一步是向Excel表格中写入数据,并将工作簿导出为Excel文件。
示例代码:
// 向单元格中写入数据 Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("Hello World"); // 导出Excel文件 FileOutputStream outputStream = new FileOutputStream("example.xlsx"); workbook.write(outputStream); outputStream.close();
五、完整示例代码
以下是一个完整的示例代码,演示了如何创建工作簿、添加工作表、合并单元格、设置单元格样式、向单元格中写入数据并导出Excel文件。
import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.*; public class ExcelExporter { public static void main(String[] args) throws Exception { // 创建工作簿 Workbook workbook = new XSSFWorkbook(); // 创建工作表 Sheet sheet = workbook.createSheet("Sheet1"); // 合并单元格 CellRangeAddress region = new CellRangeAddress(0, 0, 0, 4); sheet.addMergedRegion(region); // 创建单元格样式 CellStyle cellStyle = workbook.createCellStyle(); cellStyle.setAlignment(HorizontalAlignment.CENTER); cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 设置字体 Font font = workbook.createFont(); font.setFontName("宋体"); font.setFontHeightInPoints((short) 16); font.setBold(true); cellStyle.setFont(font); // 向单元格中写入数据 Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("Hello World"); // 应用样式到单元格中 cell.setCellStyle(cellStyle); // 导出Excel文件 FileOutputStream outputStream = new FileOutputStream("example.xlsx"); workbook.write(outputStream); outputStream.close(); } }