当前位置: 首页 > news >正文

响应式网站建设报价单/杭州seo教程

响应式网站建设报价单,杭州seo教程,用什么软件开发app,邢台建手机网站流程在实际开发中我们经常需要导入数据,统计数据,并且将统计好的数据导出excel,今天分享一个导出学生信息的方法。目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java Excel。Jakarta POI 是一套用于访问微软格式文…

在实际开发中我们经常需要导入数据,统计数据,并且将统计好的数据导出excel,今天分享一个导出学生信息的方法。

目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java Excel。

Jakarta POI 是一套用于访问微软格式文档的Java API。Jakarta POI有很多组件组成,其中有用于操作Excel格式文件的HSSF和用于操作Word的HWPF,目前用于操作Excel的HSSF比较成熟。官方主页,API文档

使用步骤:

一:下载jar包,并放在工程的WEB-INF——>lib目录下

二:理解HSSFWorkbook的几种对象:

HSSFWorkbook:excel的工作簿

HSSFSheet:excel的工作表

HSSFRow:excel的行

HSSFCell:excel的单元格

HSSFFont:excel字体

HSSFDataFormat:日期格式

HSSFHeader:sheet头

样式:

HSSFCellStyle:单元格样式

一个Excel的文件对应一个工作簿(HSSFWorkbook),一个工作簿可以有多个工作表(我们通常看到的Sheet0、Sheet1)(HSSFSheet)组成,一个工作表是由多行(HSSFRow)组成,一行又是由多个单元格(HSSFCell)组成。

三:定义导出数据的请求接口,一般的业务逻辑在这里处理

/**

* 导出学生信息

* @param request

* @param response

* @throws IOException

*/

@RequestMapping("/studentInfoExcelOut")

public void studentInfoExcelOut(HttpServletRequest request, HttpServletResponse response)

throws IOException {

/**获取导出数据,实际开发中这里一般是从数据库查询的数据,

这里演示是定义了一个实体对象,然后初始化多个对象,并放进我们需要导出的集合里*/

List list = new ArrayList<>();

int sex = 1;

for(int i = 0 ;i < 10 ;i++){

if(i%2 == 0){

sex = 2;

}

Student stu = new Student(i+1,"学生"+(i+1)+"号",sex,18+i,20190001+i,"1998年-"+(i+1)+"月",new Date());

list.add(stu);

}

exportExcelBook(request,response,list);

return;

}

由于我们是导出学生的基础信息,所以需要定义一个学生实体类对象Student.java:

public class Student {

/**学生id*/

private int id;

/**学生姓名*/

private String name;

/**学生性别 1:男 2:女*/

private int sex;

/**学生年龄*/

private int age;

/**学生学号*/

private int student_no;

/**学生出生年月*/

private String birthday;

/**学生创建时间*/

private Date create_time;

public Student(int id,String name,int sex,int age,int student_no,String birthday,Date create_time) {

this.id = id;

this.name = name;

this.sex = sex;

this.age = age;

this.student_no = student_no;

this.birthday = birthday;

this.create_time = create_time;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getSex() {

return sex;

}

public void setSex(int sex) {

this.sex = sex;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public int getStudent_no() {

return student_no;

}

public void setStudent_no(int student_no) {

this.student_no = student_no;

}

public String getBirthday() {

return birthday;

}

public void setBirthday(String birthday) {

this.birthday = birthday;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public Date getCreate_time() {

return create_time;

}

public void setCreate_time(Date create_time) {

this.create_time = create_time;

}

}

四:调用HSSFWorkbook提供的方法将所需要导出的数据导出并生成文件

/**

* 导出数据生成EXCEL方法

* @param request

* @param response

* @param list

* @throws IOException

*/

public void exportExcelBook(HttpServletRequest request, HttpServletResponse response,List list)

throws IOException {

if (CollectionUtils.isEmpty(list)) {

return;

}

//文件名称,客户端传来的参数,防止中文文件名乱码参数编码因此这里需要解码

String fileName = URLDecoder.decode(request.getParameter("fileName"),"UTF-8");

//创建Excel工作薄对象

HSSFWorkbook workbook = new HSSFWorkbook();

//创建Excel工作表对象

HSSFSheet sheet = workbook.createSheet();

sheet.setColumnWidth(0, 3000);

sheet.setColumnWidth(1, 5000);

sheet.setColumnWidth(2, 4000);

sheet.setColumnWidth(3, 2500);

sheet.setColumnWidth(4, 3000);

sheet.setColumnWidth(5, 6000);

sheet.setColumnWidth(6, 6000);

// 设置表头字体样式

HSSFFont columnHeadFont = workbook.createFont();

columnHeadFont.setFontName("宋体");

columnHeadFont.setFontHeightInPoints((short) 10);

columnHeadFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

// 列头的样式

HSSFCellStyle columnHeadStyle = workbook.createCellStyle();

columnHeadStyle.setFont(columnHeadFont);

// 左右居中

columnHeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);

// 上下居中

columnHeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

columnHeadStyle.setLocked(true);

columnHeadStyle.setWrapText(true);

// 左边框的颜色

columnHeadStyle.setLeftBorderColor(HSSFColor.BLACK.index);

// 边框的大小

columnHeadStyle.setBorderLeft((short) 1);

// 右边框的颜色

columnHeadStyle.setRightBorderColor(HSSFColor.BLACK.index);

// 边框的大小

columnHeadStyle.setBorderRight((short) 1);

// 设置单元格的边框为粗体

columnHeadStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);

// 设置单元格的边框颜色

columnHeadStyle.setBottomBorderColor(HSSFColor.BLACK.index);

// 设置单元格的背景颜色(单元格的样式会覆盖列或行的样式)

columnHeadStyle.setFillForegroundColor(HSSFColor.WHITE.index);

// 设置普通单元格字体样式

HSSFFont font = workbook.createFont();

font.setFontName("宋体");

font.setFontHeightInPoints((short) 10);

//创建Excel工作表第一行

HSSFRow row0 = sheet.createRow(0);

// 设置行高

row0.setHeight((short) 750);

HSSFCell cell = row0.createCell(0);

//设置单元格内容

cell.setCellValue(new HSSFRichTextString("学生id"));

//设置单元格字体样式

cell.setCellStyle(columnHeadStyle);

cell = row0.createCell(1);

cell.setCellValue(new HSSFRichTextString("姓名"));

cell.setCellStyle(columnHeadStyle);

cell = row0.createCell(2);

cell.setCellValue(new HSSFRichTextString("性别"));

cell.setCellStyle(columnHeadStyle);

cell = row0.createCell(3);

cell.setCellValue(new HSSFRichTextString("年龄"));

cell.setCellStyle(columnHeadStyle);

cell = row0.createCell(4);

cell.setCellValue(new HSSFRichTextString("学号"));

cell.setCellStyle(columnHeadStyle);

cell = row0.createCell(5);

cell.setCellValue(new HSSFRichTextString("出生年月"));

cell.setCellStyle(columnHeadStyle);

cell = row0.createCell(6);

cell.setCellValue(new HSSFRichTextString("创建时间"));

cell.setCellStyle(columnHeadStyle);

// 循环写入数据

for (int i = 0; i < list.size(); i++) {

Student stu = list.get(i);

HSSFRow row = sheet.createRow(i + 1);

cell = row.createCell(0);

cell.setCellValue(new HSSFRichTextString(String.valueOf(stu.getId())));

cell.setCellStyle(columnHeadStyle);

cell = row.createCell(1);

cell.setCellValue(new HSSFRichTextString(stu.getName()));

cell.setCellStyle(columnHeadStyle);

cell = row.createCell(2);

if(stu.getSex() == 1){

cell.setCellValue(new HSSFRichTextString("男"));

}else{

cell.setCellValue(new HSSFRichTextString("女"));

}

cell.setCellStyle(columnHeadStyle);

cell = row.createCell(3);

cell.setCellValue(new HSSFRichTextString(String.valueOf(stu.getAge())));

cell.setCellStyle(columnHeadStyle);

cell = row.createCell(4);

cell.setCellValue(new HSSFRichTextString(String.valueOf(stu.getStudent_no())));

cell.setCellStyle(columnHeadStyle);

cell = row.createCell(5);

cell.setCellValue(new HSSFRichTextString(stu.getBirthday()));

cell.setCellStyle(columnHeadStyle);

cell = row.createCell(6);

cell.setCellValue(new HSSFRichTextString());

cell.setCellStyle(columnHeadStyle);

cell.setCellValue(new HSSFRichTextString(DateUtils.DateToString(stu.getCreate_time(), "yyyy-MM-dd HH:mm:ss")));

}

// 获取输出流

OutputStream os = response.getOutputStream();

// 重置输出流

response.reset();

// 设定输出文件头

response.setHeader("Content-disposition",

"attachment; filename=" + new String(fileName.getBytes("GB2312"), "8859_1") + ".xls");

// 定义输出类型

response.setContentType("application/msexcel");

workbook.write(os);

os.close();

return;

}

五:网页调用导出excel接口

导出学生信息

function outExcel(){

var fileName ="学生信息表";

//编码防止中文字符乱码

window.location.href=encodeURI("studentInfoExcelOut?fileName="+encodeURIComponent(fileName));

}

六:导出excel截图:

dd1e4f28757b

原文作者技术博客:https://www.jianshu.com/u/ac4daaeecdfe

95后前端妹子一枚,爱阅读,爱交友,将工作中遇到的问题记录在这里,希望给每一个看到的你能带来一点帮助。

欢迎留言交流。

http://www.lbrq.cn/news/970993.html

相关文章:

  • 网站开发代做/技能培训班有哪些课程
  • 实验报告设计方案/站长工具seo综合查询源码
  • 安阳网站建设哪里最好/软件测试培训
  • 网站建设网店名字/自助搭建平台
  • 网站群建设论文/seo优化招商
  • 网站换模板影响/朋友圈网络营销
  • 无锡网站制作 高端网站定制/地推放单平台
  • 大连网站建设蛇皮果/seo投放
  • 施工企业资质审查系统/北京百度seo工作室
  • 沈阳做企业网站/谷歌推广
  • 免费做公司网站/沧州seo公司
  • 整容医院网站建设目的/网络推广平台几大类
  • 在百度云上建设网站/网络营销顾问招聘
  • 在国内做av网站/南宁seo渠道哪家好
  • 做网站水晶头/国外友链买卖平台
  • 相亲网站如何做/游戏推广是什么工作
  • 网站怎么做丰富的tag标签页/百度推广怎么优化关键词的质量
  • 网站建设及运行情况介绍/搜狗站长推送工具
  • 嘉兴网站推广公司/百度推广登录手机版
  • 徐州市铜山新区建设局网站/垂直搜索引擎
  • 途牛的旅游网站是谁做的/企业策划咨询公司
  • 楚雄做网站建设的公司/网站优化排名易下拉效率
  • 怎么做一网站/网站搭建公司
  • 网站维护大概要多久/卖链接的网站
  • 建筑公司网站设计模板/网络营销的认识
  • 网站网络架构/全国新冠疫情最新消息
  • wordpress添加新php页面/seo教程 百度网盘
  • 外贸网站营销建站/b站新人视频怎么推广
  • 外链数是网站反向链接码/个人博客
  • 河南住房和城乡建设厅一体化平台网站/必应bing搜索引擎
  • 【代码】基于CUDA优化的RANSAC实时激光雷达点云地面分割
  • 基于 Python/PHP/Node.js 的淘宝 API 商品数据抓取开发教程
  • 端侧推理软件栈
  • 前端网络性能优化
  • 查看.bin二进制文件的方式(HxD十六进制编辑器的安装)
  • 深入核心:理解Spring Boot的三大基石:起步依赖、自动配置与内嵌容器