Java实现数据写入Excel的示例与样式设置

需积分: 50 4 下载量 154 浏览量 更新于2024-09-14 收藏 6KB TXT 举报
在Java中将数据输出到Excel文件是一种常见的需求,特别是在处理大量数据或需要进行数据分析时。本篇代码示例展示了如何使用Apache POI库,一个广泛用于操作Microsoft Office格式文件(包括Excel)的Java API,来创建和填充Excel工作簿。以下是一个名为"Excel"的Java类中的关键部分,该类演示了如何创建一个新的Excel工作簿,添加工作表,并设置单元格样式。 首先,引入必要的Apache POI库依赖,如`HSSFWorkbook`、`HSSFRow`、`HSSFSheet`、`HSSFCellStyle`等。这些类分别对应Excel工作簿、工作表、行和单元格样式。 ```java import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFPalette; ``` 在`main`方法中,创建一个`HSSFWorkbook`对象,这相当于Excel工作簿的实例。然后,通过`createSheet()`方法创建一个新的工作表,这里使用的是默认的1("Sheet1")。接下来,定义一个`HSSFCellStyle`对象`style`,用于指定单元格的格式,包括边框样式(`BORDER_THIN`)、颜色(通过索引引用预设的颜色)等。 ```java HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); // 创建新的工作表 HSSFCellStyle style = wb.createCellStyle(); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 底部边框 style.setBottomBorderColor(HSSFColor.BLACK.index); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); // 左侧边框 style.setLeftBorderColor(HSSFColor.BLACK.index); style.setBorderRight(HSSFCellStyle.BORDER_THIN); // 右侧边框 style.setBorderTop(HSSFCellStyle.BORDER_THIN); // 顶部边框 ``` 这个例子仅展示了基本的单元格样式设置,实际应用中可能还需要根据需要设置字体、对齐方式、数字格式、颜色等更多细节。例如,如果要将数据写入单元格,可以使用`HSSFCell`类,如下所示: ```java // 假设有一个数据列表data String[] data = {"姓名", "年龄", "成绩"}; for (int i = 0; i < data.length; i++) { HSSFRow row = sheet.createRow(i + 1); // 创建新行 HSSFCell cell = row.createCell(i); // 创建单元格 cell.setCellValue(data[i]); // 设置单元格值 cell.setCellStyle(style); // 将样式应用到单元格 } ``` 最后,保存Excel文件: ```java FileOutputStream outputStream = new FileOutputStream("output.xlsx"); wb.write(outputStream); wb.close(); outputStream.close(); ``` 总结来说,这段代码演示了如何使用Apache POI库在Java中创建一个简单的Excel工作簿,包括创建工作表、定义单元格样式以及写入数据。实际应用中,可以根据具体需求调整样式和数据内容,以满足各种Excel文件格式的需求。