用java输出学生信息表代码_使用java导出学生成绩表-excel成绩表
本文简单研究使用java导出学生成绩表,使用到的导出Excel的技术为Apache poi,相关的技术可以查看我之前的文章。之前导出的Excel的格式为03版的xls,使用的jar为poi-3.10-FINAL-20140208.jar,本例导出07版的xlsx格式,使用的jar为poi-ooxml-3.10-FINAL-20140208.jar、poi-ooxml-schemas-3.10-FINAL-20140208.jar、dom4j-1.6.1.jar、xmlbeans-2.3.0.jar。总之,与Excel导出相关的jar有以下这些:
导出03版使用的是HSSF技术,导出07版使用的是XSSF技术,二者用法相近,在此不再赘述。
最终效果;
学生成绩表中需要计算总分,平均分和排名,当然,可以通过在数据库查询之后,直接将结果输出到Excel。本例使用poi提供的公式来解决上述问题,公式使用的简单介绍:
设置单元格格式为使用公式,并设置公式内容
cell = row.createCell(2);
// Create SUM formula
cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula("SUM(C2:C3)" );
Excel全部组装完毕之后,进行计算
//计算公式
wb.getCreationHelper()
.createFormulaEvaluator()
.evaluateAll();
关于公式的具体内容为Excel的相关知识,在此不再赘述。
源代码:
package com.company.test;
import java.io.*;
import java.util.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
/**
* 导出学生成绩表
* <p>Title:StudentScore </p>
* <p>Description:TODO </p>
* <p>Company: </p>
* @author code legend
* @date 2016-11-1 下午9:11:25
*/
public class StudentScore
{
public static void main(String[] args)
throws IOException
{
//创建工作簿
XSSFWorkbook wb = new XSSFWorkbook();
//创建工作表
XSSFSheet sheet = wb.createSheet("成绩表");
for(int i=0;i<3;i++){
//设置列宽
sheet.setColumnWidth(i, 3000);
}
//创建行
XSSFRow row = sheet.createRow(0);
row.setHeightInPoints(30);//设置行高
//创建单元格
XSSFCell cell = row.createCell(0);
cell.setCellValue("学生成绩表");
//合并单元格
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 7));
//创建行
XSSFRow row1 = sheet.createRow(1);
//标题信息
String[] titles = {"学号","姓名","语文","数学","英语","总分","平均分","排名"};
for(int i=0;i<titles.length;i++){
//创建单元格
XSSFCell cell1 = row1.createCell(i);
cell1.setCellValue(titles[i]);
}
//模拟数据,实际情况下String[]多为实体bean
List<String[]> list = new ArrayList<String[]>();
list.add(new String[]{"1","张三","81","91","81"});
list.add(new String[]{"2","李四","78","85","79"});
list.add(new String[]{"3","王五","69","78","92"});
list.add(new String[]{"4","赵六","72","88","86"});
list.add(new String[]{"5","宋七","83","96","69"});
list.add(new String[]{"6","刘八","77","71","90"});
//保留2位小数
XSSFCellStyle cellStyle = wb.createCellStyle();
XSSFDataFormat format= wb.createDataFormat();
cellStyle.setDataFormat(format.getFormat("0.00"));
//循环赋值
for(int i=0;i<list.size();i++){
//创建行
XSSFRow row2 = sheet.createRow(i+2);
//创建单元格学号
XSSFCell cell1 = row2.createCell(0);
cell1.setCellValue(list.get(i)[0]);
//创建单元格姓名
XSSFCell cell2 = row2.createCell(1);
cell2.setCellValue(list.get(i)[1]);
//创建单元格语文
XSSFCell cell3 = row2.createCell(2);
cell3.setCellValue(Integer.parseInt(list.get(i)[2]));
//创建单元格数学
XSSFCell cell4 = row2.createCell(3);
cell4.setCellValue(Integer.parseInt(list.get(i)[3]));
//创建单元格英语
XSSFCell cell5 = row2.createCell(4);
cell5.setCellValue(Integer.parseInt(list.get(i)[4]));
//创建单元格总分
XSSFCell cell6 = row2.createCell(5);
// Create SUM formula
cell6.setCellType(XSSFCell.CELL_TYPE_FORMULA);
cell6.setCellFormula("SUM(C"+(i+3)+":E"+(i+3)+")" );
//创建单元格平均分
XSSFCell cell7 = row2.createCell(6);
// Create AVERAGE formula
cell7.setCellType(XSSFCell.CELL_TYPE_FORMULA);
cell7.setCellFormula("AVERAGE(C"+(i+3)+":E"+(i+3)+")" );
cell7.setCellStyle(cellStyle);
//创建单元格排名
XSSFCell cell8 = row2.createCell(7);
// Create SUM formula
cell8.setCellType(XSSFCell.CELL_TYPE_FORMULA);
cell8.setCellFormula("RANK(F"+(i+3)+",F$3:F$"+(3+list.size()-1)+",0)" );
}
//计算公式
wb.getCreationHelper()
.createFormulaEvaluator()
.evaluateAll();
File file = new File("D://a.xlsx");
if(!file.exists()){
file.createNewFile();
}
FileOutputStream fileOut = new FileOutputStream(file);
wb.write(fileOut);
fileOut.close();
}
}
运行结果:
程序中对平均值保留了2位小数,使用到了XSSFCellStyle设置单元格格式,在之前的文章中使用到HSSFCellStyle,二者用法相近,详见《java导出excel之使用poi》、《java导出excel及下载的实现》。
用java输出学生信息表代码_使用java导出学生成绩表-excel成绩表相关推荐
- java商品信息管理系统代码_[源码分享]学生信息管理系统(管理员)
我一直以为学生信息管理系统是烂大街的,网上一搜一大把的那种 毕竟这种项目是学完C语言之后都可以独立完成的项目,只有界面好看与否的问题 最近好多学生问学生信息管理系统的代码,估计是C语言大作业什么的.然 ...
- java当中有关循环的代码_有关Java循环的内容,编程中还是比较常用的,下面分享给大家几个循环的示例代码,练习一下。1、循环输出1到100之间所有能被3或能被4整除的数。pack...
有关Java循环的内容,编程中还是比较常用的,下面分享给大家几个循环的示例代码,练习一下. 1.循环输出1到100之间所有能被3或能被4整除的数. package com.hz.loop02; /** ...
- java完成一个学生信息调查程序_利用Java设计一个简单的学生信息管理程序
利用Java设计一个简单的控制台学生信息管理程序 此程序可作为课设的参考,其中信息存储于文件中. 创建了学生类Student,用于存储学号等的信息.创建StudentFunction类,用于实现诸如学 ...
- java写的学生信息查询系统_用JAVA写一个简易的学生信息管理系统
前言:写这篇文章的目的: 为了以后复习方便,当你回头看自己的代码的时候不至于想不起你写下这段代码的思路: 慢慢锻炼自己总结的能力,养成习惯以后去写自己的技术博客,古人云,温故而知新 作为一个技术拓荒者 ...
- java学生请假天数代码_基于jsp的学生网上请假-JavaEE实现学生网上请假 - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的学生网上请假, 该项目可用各类java课程设计大作业中, 学生网上请假的系统架构分为前后台两部分, 最终实现在线上 ...
- java 待在原页面 代码_现在java后台,只要修改一点点代码,前段页面就报500,必须重新登录才行?...
哪怕是加一行注释,前段也一刷新也会报500错误,必须重新登录系统才行,以前的时候没问题呀? message description The server encountered an internal ...
- java图书信息添加代码_图书 - java代码库 - 云代码
[java]代码库package com.mahe; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt. ...
- java关于泛型的实验代码_[改善Java代码]强制声明泛型的实际类型
Arrays工具类有一个方法asList可以把一个变长参数或数组变成列表,但是它有一个缺点:它所生成的List长度是不可改变的,而这在我们的项目开发中很不方便. importjava.util.Arr ...
- java模拟摇摆小球程序代码_用java实现跳动的小球示例代码
实现效果为一个小球接触左右侧时,会反向的运动. import javafx.application.Application; import javafx.event.ActionEvent; impo ...
最新文章
- dedeCMS修改文章更新发布时间问题
- 2017-2018-1 20155338 《信息安全系统设计基础》 第四周学习总结
- linux下的各种系统错误errno描述一览
- 2016年度最受欢迎的100个 Java 库
- PHP使用PDO方式的经验总结:连接 增删改查
- 你真的认真想过了吗?
- MODBUS通讯协议详解(基于485)
- Windows FFMPEG开发环境配置
- C++ class中的静态(static)成员
- js方法写在html中,在js中写html代码怎么写
- .net 实现Cookie跨域共享,单点登录SSO
- android 音乐资源获取失败,android – 获取嵌入式mp3文件嵌入式艺术失败
- 如何突破科研瓶颈?如何与导师自在相处?微软研究员们的读博心得
- “请别再说‘华商网不重视技术’”
- 小学教师计算机说课,浙江温州小学计算机教师资格认证说课稿
- MySQL中常见的函数常见的问题
- Oxygen XML Editor Professional文档的强大工具
- python判断是否为素数_python判断一个数是否为素数
- 系统全面讲解word中选择性粘贴命令
- ttl传输种过期_来自 202.112.36.253 的回复: TTL 传输中过期。解决思路
热门文章
- Java 联网五子棋(socket)
- MMA-mathematica绘图
- 个人支付收款方案-PayJS
- OpenCL简介-----OpenCL学习(一)
- 如何写hive的udf函数?
- python字符串格式时间转化为时间戳
- __FILE__显示全路径的问题
- SSM框架解决QQ邮箱激活535 Error: ÇëʹÓÃÊÚȨÂëµÇ¼¡£ÏêÇéÇë¿´及端口25被占用问题
- arcgis如何打开tif_详解如何使用ArcGIS生成高程点
- vs2017开发ActiveX(主讲OCX)(七)、方法