Java实现Excel导出详解及示例代码
37 浏览量
更新于2024-09-01
收藏 74KB PDF 举报
"Java编程实现Excel导出的通用方法及示例代码"
在Java开发中,将数据导出为Excel格式是一种常见的需求,这通常用于数据报表或数据分析。本示例将详细介绍如何在Java中创建一个通用的Excel导出方法。通过引入Apache POI库,我们可以方便地操作Excel文件。
首先,确保在项目中引入了Apache POI的jar包,它提供了处理Microsoft Office格式(包括Excel)的API。Apache POI库允许我们在Java程序中创建、修改和读取Excel文件。
以下是一个简单的Java代码示例,展示了如何导出数据到Excel:
```java
package lcy._41_50;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.CellRangeAddress;
import org.apache.poi.hssf.util.HSSFColor;
@SuppressWarnings({"deprecation"})
public class Test46 {
public static void main(String[] args) throws Exception {
String sheetName = "用车统计表单";
String titleName = "用车申请数据统计表";
String fileName = "用车申请统计表单";
int columnNumber = 3;
int[] columnWidth = {10, 20, 30};
String[][] dataList = {
{"001", "2015-01-01", "IT"},
{"002", "2015-01-02", "市场部"},
{"003", "2015-01-03", "销售部"}
};
// 创建Excel工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建工作表
HSSFSheet sheet = workbook.createSheet(sheetName);
// 设置标题行
HSSFRow titleRow = sheet.createRow(0);
for (int i = 0; i < columnNumber; i++) {
HSSFCell cell = titleRow.createCell(i);
cell.setCellValue(titleName.split(",")[i]);
cell.setCellStyle(createTitleCellStyle(workbook));
}
// 设置列宽
for (int i = 0; i < columnNumber; i++) {
sheet.setColumnWidth(i, columnWidth[i] * 256);
}
// 添加数据行
int rowNum = 1;
for (String[] data : dataList) {
HSSFRow dataRow = sheet.createRow(rowNum++);
for (int i = 0; i < data.length; i++) {
HSSFCell cell = dataRow.createCell(i);
cell.setCellValue(data[i]);
}
}
// 写入文件
OutputStream out = new FileOutputStream(fileName + ".xls");
workbook.write(out);
out.close();
// 或者,如果要在Web环境下导出Excel,可以使用以下代码发送到浏览器
HttpServletResponse response = ...; // 获取HttpServletResponse对象
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName + ".xls", "UTF-8"));
OutputStream responseOut = response.getOutputStream();
workbook.write(responseOut);
responseOut.flush();
responseOut.close();
}
private static HSSFCellStyle createTitleCellStyle(HSSFWorkbook workbook) {
HSSFFont titleFont = workbook.createFont();
titleFont.setFontHeightInPoints((short) 14);
titleFont.setBold(true);
titleFont.setColor(HSSFColor.WHITE.index);
HSSFCellStyle style = workbook.createCellStyle();
style.setFillForegroundColor(HSSFColor.BLUE.index);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style.setFont(titleFont);
return style;
}
}
```
这段代码首先创建了一个`HSSFWorkbook`对象,它是Excel工作簿的表示。接着创建了一个名为`sheetName`的工作表,并设置了标题行和列宽。数据被添加到工作表中,每行数据对应Excel中的一个`HSSFRow`对象,每列数据对应一个`HSSFCell`对象。此外,代码还定义了一个样式方法`createTitleCellStyle`,用于设置标题行的样式,包括字体大小、颜色、背景色和边框。
如果是在Web环境中,可以通过`HttpServletResponse`对象将生成的Excel文件作为附件发送给用户下载。在上述代码中,设置了响应头以指示这是一个Excel文件,并将文件名编码为UTF-8格式,以便在浏览器中正确显示。
以上就是一个基本的Java导出Excel的通用方法。这个例子展示了如何创建Excel文件、设置标题、调整列宽、填充数据以及设置样式。在实际项目中,可以根据需要扩展此方法,例如添加数据格式化、合并单元格等功能。同时,由于Apache POI的API支持更多的Excel功能,如公式计算、图表创建等,开发者可以根据需求进一步探索和利用这些功能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-08-30 上传
151 浏览量
2021-06-05 上传
107 浏览量
2011-09-16 上传
102 浏览量