首页 > 编程语言 >Java使用POI导出excel记录

Java使用POI导出excel记录

时间:2024-08-06 15:17:57浏览次数:13  
标签:Java excel header createCell POI setCellValue response manufacturer row

eg:

@Override
public void exportExcel(HttpServletResponse response) throws Exception{
// 创建Excel文档
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("设备厂商");

// 创建表头
XSSFRow header = sheet.createRow(0);
header.createCell(0).setCellValue("ID");
header.createCell(1).setCellValue("厂商名称");
header.createCell(2).setCellValue("信用编码");
header.createCell(3).setCellValue("厂商简称");
header.createCell(4).setCellValue("地址");
header.createCell(5).setCellValue("联系人");
header.createCell(6).setCellValue("所在城市");
header.createCell(7).setCellValue("联系人手机号");
header.createCell(8).setCellValue("设备类型名称");

// 填充数据
List<ManufacturerVo> list = recManufacturerDao.findAll();
int rowIndex = 1;
for (ManufacturerVo manufacturer : list) {
XSSFRow row = sheet.createRow(rowIndex++);
row.createCell(0).setCellValue(manufacturer.getId());
row.createCell(1).setCellValue(manufacturer.getName());
row.createCell(2).setCellValue(manufacturer.getCredit());
row.createCell(3).setCellValue(manufacturer.getAbbreviation());
row.createCell(4).setCellValue(manufacturer.getAddress());
row.createCell(5).setCellValue(manufacturer.getContactPerson());
row.createCell(6).setCellValue(manufacturer.getDescription());
row.createCell(7).setCellValue(manufacturer.getContactPhone());
row.createCell(8).setCellValue(manufacturer.getDeviceCategoryName());
}

String percentEncodedFileName = percentEncode("设备厂商");
StringBuilder contentDispositionValue = new StringBuilder();
contentDispositionValue.append("attachment; filename=")
.append(percentEncodedFileName)
.append(";")
.append("filename*=")
.append("utf-8''")
.append(percentEncodedFileName);
// 设置响应头信息
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", contentDispositionValue.toString());
response.setHeader("download-filename", percentEncodedFileName);
// response.setContentType("application/vnd.ms-excel");
// response.setHeader("Content-Disposition", "attachment; filename=users.xlsx");

// 将Excel文档写入响应流中
ServletOutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.flush();
outputStream.close();
}

/**
* 百分号编码工具方法
*
* @param s 需要百分号编码的字符串
* @return 百分号编码后的字符串
*/
public static String percentEncode(String s) throws UnsupportedEncodingException {
String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString());
return encode.replaceAll("\\+", "%20");
}

标签:Java,excel,header,createCell,POI,setCellValue,response,manufacturer,row
From: https://www.cnblogs.com/sensenh/p/18345202

相关文章

  • Java 类多态的向上转型
     假定Base b = new Derived(); 调用执行b.methodOne()后,输出结果是什么?1publicclassBase2{3publicvoidmethodOne()4{5System.out.print("A");6methodTwo();7}89publicvoidmethodTwo()10{11System.ou......
  • 我正在 python 中使用 aspose.pdf 将 pdf 转换为 excel 。但问题是它只能将 pdf 的前
    `从tkinter导入*将aspose.pdf导入为ap从tkinter导入文件对话框importpandasaspdinput_pdf=filedialog.askopenfilename(filetypes=(("PDF文件",".pdf"),("所有文件",".")))output_file=filedialog.asksaveasfil......
  • Java 用jetty实现HTTP服务器 获取 Get 请求体
    Java用jetty开发HTTP服务器来获取每次GET请求中的请求体监听本机IP地址 中的 /httpCli 端口5011Main.javapackagecom.JettyServer;importorg.eclipse.jetty.server.Server;importorg.eclipse.jetty.server.handler.ContextHandler;importorg.eclipse.......
  • Java 继承和多态(进阶介绍 十六)
    目录Java继承IS-A关系实例实例instanceof关键字HAS-A关系例子Java多态简单的例子虚方法多态的实现方式方式一:重写方式二:接口Java继承继承是所有OOP语言和Java语言不可缺少的组成部分。继承是Java面向对象编程技术的一块基石,是面向对象的三大特征......
  • Java计算机毕业设计家乐在线家装平台(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网的普及和人们生活水平的提高,家装行业正经历着前所未有的变革。传统家装模式存在信息不对称、流程繁琐、效率低下等问题,难以满足消费者日益......
  • Java计算机毕业设计课程在线测评系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,在线教育已成为教育领域的重要组成部分,其灵活性和便捷性受到广大师生的青睐。然而,如何有效评估在线教育的学习效果,确保教学质......
  • Java计算机毕业设计咖啡馆管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着咖啡文化的普及和消费者对品质生活追求的不断提升,咖啡馆作为休闲聚会、商务洽谈的重要场所,其数量与规模在全球范围内迅速增长。然而,传统的手工管......
  • Java计算机毕业设计家教服务网(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在当今社会,随着教育竞争的日益激烈和家长对孩子教育质量的重视,家教服务已成为许多家庭提升孩子学习成绩、培养综合素质的重要途径。然而,传统的家教服......
  • 基于Java+SpringBoot+Mysql实现的在线电影订票系统部分功能设计与实现五
    一、前言介绍:1.1项目摘要随着互联网技术的飞速发展和普及,人们的娱乐消费方式发生了巨大变化。在线娱乐平台,特别是电影订票系统,成为了现代人观影的主要选择之一。这一变化主要得益于以下几个方面的因素:生活节奏的加快:现代人的生活节奏越来越快,时间变得尤为宝贵。在线电影......
  • 基于Java+SpringBoot+Mysql实现的在线电影订票系统部分功能设计与实现六
    一、前言介绍:1.1项目摘要随着互联网技术的飞速发展和普及,人们的娱乐消费方式发生了巨大变化。在线娱乐平台,特别是电影订票系统,成为了现代人观影的主要选择之一。这一变化主要得益于以下几个方面的因素:生活节奏的加快:现代人的生活节奏越来越快,时间变得尤为宝贵。在线电影......