查询数据写入excel并下载
来源:互联网 发布:淘宝大尺度买家秀链接 编辑:程序博客网 时间:2024/05/18 11:36
private XSSFWorkbook export(HttpServletRequest request, HttpServletResponse response,
response.setContentType("application/application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName + ".xls", "UTF-8"));
// 创建一个Workbook,对应一个Excel文件
XSSFWorkbook wb = new XSSFWorkbook();
// 设置标题样式
XSSFCellStyle titleStyle = wb.createCellStyle();
// 设置单元格边框样式
titleStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上边框 细边线
titleStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);// 下边框 细边线
titleStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左边框 细边线
titleStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右边框 细边线
// 设置单元格对齐方式
titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中
titleStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中
// 设置字体样式
Font titleFont = wb.createFont();
titleFont.setFontHeightInPoints((short) 15); // 字体高度
titleFont.setFontName("黑体"); // 字体样式
titleStyle.setFont(titleFont);
// 在Workbook中添加一个sheet,对应Excel文件中的sheet
XSSFSheet sheet = wb.createSheet(fileName);
// 标题数组
String[] titleArray = new String[excelHeader.length];
// 字段名数组
String[] fieldArray = new String[excelHeader.length];
for (int i = 0; i < excelHeader.length; i++) {
String[] tempArray = excelHeader[i].split(",");// 临时数组 分割#
titleArray[i] = tempArray[0];
fieldArray[i] = tempArray[0];
}
// 在sheet中添加标题行
XSSFRow row = sheet.createRow((int) 0);// 行数从0开始
// 为标题行赋值
for (int i = 0; i < titleArray.length; i++) {
XSSFCell titleCell = row.createCell(i);
titleCell.setCellValue(titleArray[i]);
titleCell.setCellStyle(titleStyle);
// sheet.autoSizeColumn(i + 1);// 0号位被序号占用,所以需+1
}
// 数据样式 因为标题和数据样式不同 需要分开设置 不然会覆盖
XSSFCellStyle dataStyle = wb.createCellStyle();
// 设置数据边框
dataStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
dataStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
dataStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
dataStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
// 设置居中样式
dataStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中
dataStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中
// 设置数据字体
Font dataFont = wb.createFont();
dataFont.setFontHeightInPoints((short) 12); // 字体高度
dataFont.setFontName("宋体"); // 字体
dataStyle.setFont(dataFont);
for (int i = 0; i < fieldArray.length; i++) {
XSSFCell sequenceCellValue = row.createCell(i);
sequenceCellValue.setCellValue(fieldArray[i]);
sequenceCellValue.setCellStyle(dataStyle);
}
for (int j = 1; j <= findList.size(); j++) {
row = sheet.createRow(j);
// 为序号赋值
XSSFCell sequenceCellValue = row.createCell(0);// 序号值永远是第0列
sequenceCellValue.setCellValue(j);
sequenceCellValue.setCellStyle(dataStyle);
Map<String, String> su = (Map<String, String>) findList.get(j-1);
for(int i = 0; i < fieldArray.length; i++){
if( i ==0){
XSSFCell dataCell = row.createCell(i);
dataCell.setCellStyle(dataStyle);
sheet.autoSizeColumn(j);
dataCell.setCellValue(j);// 为当前列赋值
}else{
XSSFCell dataCell = row.createCell(i);
dataCell.setCellStyle(dataStyle);
sheet.autoSizeColumn(j);
if(i==1)
dataCell.setCellValue(su.get("name"));// 为当前列赋值
if(i==2)
dataCell.setCellValue(su.get("mobile"));// 为当前列赋值
if(i==3)
dataCell.setCellValue(su.get("company"));// 为当前列赋值
if(i==4)
dataCell.setCellValue(su.get("companyTel"));// 为当前列赋值
if(i==5)
dataCell.setCellValue(su.get("position"));// 为当前列赋值
if(i==6)
dataCell.setCellValue(su.get("accommodation"));// 为当前列赋值
if(i==7)
dataCell.setCellValue(su.get("gender"));// 为当前列赋值
if(i==8)
dataCell.setCellValue(su.get("driving"));// 为当前列赋值
if(i==9)
dataCell.setCellValue(su.get("flight"));// 为当前列赋值
if(i==10)
dataCell.setCellValue(su.get("remarks"));// 为当前列赋值
}
}
}
OutputStream outputStream = response.getOutputStream();// 打开流
wb.write(outputStream);// HSSFWorkbook写入流
outputStream.flush();// 刷新流
outputStream.close();// 关闭流
return wb;
}
String fileName, String[] excelHeader, List<Map<String, String>> findList) throws Exception {
//fileName为文件名
//excelHeader为excel列表标头第一行内容
//findList为查询出的数据
response.setContentType("application/application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName + ".xls", "UTF-8"));
// 创建一个Workbook,对应一个Excel文件
XSSFWorkbook wb = new XSSFWorkbook();
// 设置标题样式
XSSFCellStyle titleStyle = wb.createCellStyle();
// 设置单元格边框样式
titleStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上边框 细边线
titleStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);// 下边框 细边线
titleStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左边框 细边线
titleStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右边框 细边线
// 设置单元格对齐方式
titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中
titleStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中
// 设置字体样式
Font titleFont = wb.createFont();
titleFont.setFontHeightInPoints((short) 15); // 字体高度
titleFont.setFontName("黑体"); // 字体样式
titleStyle.setFont(titleFont);
// 在Workbook中添加一个sheet,对应Excel文件中的sheet
XSSFSheet sheet = wb.createSheet(fileName);
// 标题数组
String[] titleArray = new String[excelHeader.length];
// 字段名数组
String[] fieldArray = new String[excelHeader.length];
for (int i = 0; i < excelHeader.length; i++) {
String[] tempArray = excelHeader[i].split(",");// 临时数组 分割#
titleArray[i] = tempArray[0];
fieldArray[i] = tempArray[0];
}
// 在sheet中添加标题行
XSSFRow row = sheet.createRow((int) 0);// 行数从0开始
// 为标题行赋值
for (int i = 0; i < titleArray.length; i++) {
XSSFCell titleCell = row.createCell(i);
titleCell.setCellValue(titleArray[i]);
titleCell.setCellStyle(titleStyle);
// sheet.autoSizeColumn(i + 1);// 0号位被序号占用,所以需+1
}
// 数据样式 因为标题和数据样式不同 需要分开设置 不然会覆盖
XSSFCellStyle dataStyle = wb.createCellStyle();
// 设置数据边框
dataStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
dataStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
dataStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
dataStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
// 设置居中样式
dataStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中
dataStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中
// 设置数据字体
Font dataFont = wb.createFont();
dataFont.setFontHeightInPoints((short) 12); // 字体高度
dataFont.setFontName("宋体"); // 字体
dataStyle.setFont(dataFont);
for (int i = 0; i < fieldArray.length; i++) {
XSSFCell sequenceCellValue = row.createCell(i);
sequenceCellValue.setCellValue(fieldArray[i]);
sequenceCellValue.setCellStyle(dataStyle);
}
for (int j = 1; j <= findList.size(); j++) {
row = sheet.createRow(j);
// 为序号赋值
XSSFCell sequenceCellValue = row.createCell(0);// 序号值永远是第0列
sequenceCellValue.setCellValue(j);
sequenceCellValue.setCellStyle(dataStyle);
Map<String, String> su = (Map<String, String>) findList.get(j-1);
for(int i = 0; i < fieldArray.length; i++){
if( i ==0){
XSSFCell dataCell = row.createCell(i);
dataCell.setCellStyle(dataStyle);
sheet.autoSizeColumn(j);
dataCell.setCellValue(j);// 为当前列赋值
}else{
XSSFCell dataCell = row.createCell(i);
dataCell.setCellStyle(dataStyle);
sheet.autoSizeColumn(j);
if(i==1)
dataCell.setCellValue(su.get("name"));// 为当前列赋值
if(i==2)
dataCell.setCellValue(su.get("mobile"));// 为当前列赋值
if(i==3)
dataCell.setCellValue(su.get("company"));// 为当前列赋值
if(i==4)
dataCell.setCellValue(su.get("companyTel"));// 为当前列赋值
if(i==5)
dataCell.setCellValue(su.get("position"));// 为当前列赋值
if(i==6)
dataCell.setCellValue(su.get("accommodation"));// 为当前列赋值
if(i==7)
dataCell.setCellValue(su.get("gender"));// 为当前列赋值
if(i==8)
dataCell.setCellValue(su.get("driving"));// 为当前列赋值
if(i==9)
dataCell.setCellValue(su.get("flight"));// 为当前列赋值
if(i==10)
dataCell.setCellValue(su.get("remarks"));// 为当前列赋值
}
}
}
OutputStream outputStream = response.getOutputStream();// 打开流
wb.write(outputStream);// HSSFWorkbook写入流
outputStream.flush();// 刷新流
outputStream.close();// 关闭流
return wb;
}
0 0
- 查询数据写入excel并下载
- Excel 写入复制模板,写入数据并下载
- 复制excel并写入数据
- 导出查询数据生成EXCEL文件并下载
- java查询数据导出excel并返回给浏览器下载
- java SpringMVC中 POI读取数据库数据并写入Excel表格中,并实现下载功能
- 创建新的Excel ,并写入数据
- vb 生成excel 并写入数据
- 生成Excel文件并写入数据
- java操作excel之创建excel文件,并写入数据
- PHP操作Excel (创建Excel并写入数据)
- python 查询Mysql并将记录写入到Excel中
- 通过配置文件连接数据库查询并写入Excel
- VB.NET向Excel写入并保存数据
- NPOI 通过excel模板写入数据并导出
- delphi创建excel写入数据并创建二维折线图
- 使用jxl读取模板文件,写入数据并导出excel
- java利用poi创建excel文件并写入数据
- 详解Java设计模式中的生产-消费者模式及代码实现
- nodejs-操作文件系统创建读取目录
- LeetCode121 Best Time to Buy and Sell Stock
- 网易-资深iOS开发工程师
- 谷歌整体战略:关于人工智能、云服务和登月计划的未来
- 查询数据写入excel并下载
- KoaHub.JS基于Node.js开发的mysql的node.js驱动程序代码
- C# 判断 文件路径/文件 是否存在
- web06 Http状态管理
- 1024程序员节,哈尔滨美女小伙为程序员“请愿”
- AE系统组件开发资源共享
- smbclient和挂载samba共享目录
- 如何使用openssl生成RSA公钥和私钥对
- 数组(array)