Java将list数据导出到Excel——(八)
Java实体类
package bean; public class Question { private String timu; //题干
private String leixing; //类型
private String axuanxiang; //A选项
private String bxuanxiang; //B选项
private String cxuanxiang; //C选项
private String dxuanxiang; //D选项
private String daan; //答案
private String jiexi; //解析
public String getTimu() {
return timu;
}
public void setTimu(String timu) {
this.timu = timu;
}
public String getLeixing() {
return leixing;
}
public void setLeixing(String leixing) {
this.leixing = leixing;
} public String getAxuanxiang() {
return axuanxiang;
}
public void setAxuanxiang(String axuanxiang) {
this.axuanxiang = axuanxiang;
}
public String getBxuanxiang() {
return bxuanxiang;
}
public void setBxuanxiang(String bxuanxiang) {
this.bxuanxiang = bxuanxiang;
}
public String getCxuanxiang() {
return cxuanxiang;
}
public void setCxuanxiang(String cxuanxiang) {
this.cxuanxiang = cxuanxiang;
}
public String getDxuanxiang() {
return dxuanxiang;
}
public void setDxuanxiang(String dxuanxiang) {
this.dxuanxiang = dxuanxiang;
}
public String getDaan() {
return daan;
}
public void setDaan(String daan) {
this.daan = daan;
}
public String getJiexi() {
return jiexi;
}
public void setJiexi(String jiexi) {
this.jiexi = jiexi;
}
@Override
public String toString() {
return "Question [timu=" + timu + ", leixing=" + leixing + ", axuanxiang=" + axuanxiang + ", bxuanxiang="
+ bxuanxiang + ", cxuanxiang=" + cxuanxiang + ", dxuanxiang=" + dxuanxiang + ", daan=" + daan
+ ", jiexi=" + jiexi + "]";
}
public Question(String timu, String leixing, String axuanxiang, String bxuanxiang, String cxuanxiang,
String dxuanxiang, String daan, String jiexi) {
super();
this.timu = timu;
this.leixing = leixing;
this.axuanxiang = axuanxiang;
this.bxuanxiang = bxuanxiang;
this.cxuanxiang = cxuanxiang;
this.dxuanxiang = dxuanxiang;
this.daan = daan;
this.jiexi = jiexi;
}
public Question() {
super();
} }
导出Java
package Action.Excel2; import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
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.eclipse.jdt.internal.compiler.ast.ThisReference;
import org.jdom.Attribute;
import org.jdom.Element; import bean.Question; public class GenerateExcelPaper {
/**
* 产生Excel试卷
*@param list 题目集合
*/
public static void exportExcelPaper(List<Question> list) {
// 标题
String[] title = { "题目", "类型", "A选项", "B选项", "C选项", "D选项", "答案", "解析" };
// 创建一个工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建一个工作表sheet
HSSFSheet sheet = workbook.createSheet();
// 设置列宽
setColumnWidth(sheet, 8);
// 创建第一行
HSSFRow row = sheet.createRow(0);
// 创建一个单元格
HSSFCell cell = null;
// 创建表头
for (int i = 0; i < title.length; i++) {
cell = row.createCell(i);
// 设置样式
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 设置字体居中
// 设置字体
HSSFFont font = workbook.createFont();
font.setFontName("宋体");
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 字体加粗
// font.setFontHeight((short)12);
font.setFontHeightInPoints((short) 13);
cellStyle.setFont(font);
cell.setCellStyle(cellStyle); cell.setCellValue(title[i]);
} // 模拟数据
/*List<Question> list = new ArrayList<>();
list.add(new Question("你喜欢吃什么", "单选", "老司机", "方便吗", "辣条", "牛奶", "老司机", "我是老司机"));
list.add(new Question("你喜欢吃什么", "单选", "老司机", "方便吗", "辣条", "牛奶", "老司机", "我是老司机"));
list.add(new Question("你喜欢吃什么", "单选", "老司机", "方便吗", "辣条", "牛奶", "老司机", "我是老司机"));
list.add(new Question("你喜欢吃什么", "单选", "老司机", "方便吗", "辣条", "牛奶", "老司机", "我是老司机"));
list.add(new Question("你是人", "判断", "", "", "", "", "是", "我是老司机"));
list.add(new Question("你是人", "判断", "", "", "", "", "是", "我是老司机"));*/
System.out.println(list);
// 从第二行开始追加数据
for (int i = 1; i < (list.size() + 1); i++) {
// 创建第i行
HSSFRow nextRow = sheet.createRow(i);
for (int j = 0; j < 8; j++) {
Question eQuestion = list.get(i-1);
HSSFCell cell2 = nextRow.createCell(j);
if (j == 0) {
cell2.setCellValue( eQuestion.getTimu());
}
if (j == 1) {
cell2.setCellValue(eQuestion.getLeixing());
}
if (j == 2) {
cell2.setCellValue(eQuestion.getAxuanxiang());
}
if (j == 3) {
cell2.setCellValue(eQuestion.getBxuanxiang());
}
if (j == 4) {
cell2.setCellValue(eQuestion.getCxuanxiang());
}
if (j == 5) {
cell2.setCellValue(eQuestion.getDxuanxiang());
}
if (j == 6) {
cell2.setCellValue(eQuestion.getDaan());
}
if (j == 7) {
cell2.setCellValue(eQuestion.getJiexi());
}
}
} // 创建一个文件
File file = new File("E:/1.xls");
try {
file.createNewFile();
// 打开文件流
FileOutputStream outputStream = FileUtils.openOutputStream(file);
workbook.write(outputStream);
outputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } // 设置列宽()
private static void setColumnWidth(HSSFSheet sheet, int colNum) {
for (int i = 0; i < colNum; i++) {
int v = 0;
v = Math.round(Float.parseFloat("15.0") * 37F);
v = Math.round(Float.parseFloat("20.0") * 267.5F);
sheet.setColumnWidth(i, v);
}
} }
测试:
aaarticlea/png;base64,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" alt="" />
附一个从后台查询满足条件的数据并导出到Excel中d的例子:
大概思路是:
1.查询满足条件的数据
2.生成Excel到本地
3.打开Excel的OutputStream提供下载
package cn.xm.jwxt.controller.trainScheme; import cn.xm.jwxt.annotation.MyLogAnnotation;
import cn.xm.jwxt.service.trainScheme.CourseBaseInfoService;
import cn.xm.jwxt.utils.*;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.lang.reflect.Method;
import java.net.URLEncoder;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
import java.util.Map; /**
* @Author: qlq
* @Description 导出课程信息到Excel中
* @Date: 10:11 2018/4/29
*/
@Controller
public class ExtCourseExcel { @Autowired
private CourseBaseInfoService courseBaseInfoService;
private Logger logger = Logger.getLogger(ExtCourseExcel.class);
//1.先从缓存中取数据,看能取到取不到 //2.写入excel到本地 //3.打开流提供下载
//1.查询数据
public List<Map<String, Object>> getCourseBaseInfosByCondition(@RequestParam Map<String, Object> condition) {
List<Map<String, Object>> datas = null;
try {
datas = courseBaseInfoService.getCourseBaseInfosByCondition(condition);
} catch (SQLException e) {
logger.error("导出课程信息的时候查询数据库出错",e);
}
return datas;
} //2.写文件到excel中 /**
* 写数据到本地磁盘
* @param datas 课程数据
* @param fileQualifyName 文件全路径(比如C:/USER/XXX.excel)
*/
public void writeCourse2LocalExcel(List<Map<String,Object>> datas,String fileQualifyName){
String[] title = { "课程编号", "课程平台","课程性质","中文名称","英文名称","学分", "学时","讲课时长","实验时长","上机时长","实践时长","周学时分配","计分方式","学时单位" };
//2.1写入表头信息
// 创建一个工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建一个工作表sheet
HSSFSheet sheet = workbook.createSheet();
// 设置列宽
this.setColumnWidth(sheet, 14);
// 创建第一行
HSSFRow row = sheet.createRow(0);
// 创建一个单元格
HSSFCell cell = null;
// 创建表头
for (int i = 0; i < title.length; i++) {
cell = row.createCell(i);
// 设置样式
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 设置字体居中
// 设置字体
HSSFFont font = workbook.createFont();
font.setFontName("宋体");
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 字体加粗
// font.setFontHeight((short)12);
font.setFontHeightInPoints((short) 13);
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);
cell.setCellValue(title[i]);
} // 2.2写入数据
// 从第二行开始追加数据
for (int i = 1, length_1 = (datas.size() + 1); i < length_1; i++) {
// 创建第i行
HSSFRow nextRow = sheet.createRow(i);
// 设置样式
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 设置字体居中
// 获取数据(一条数据)
Map<String, Object> course = datas.get(i - 1);
for (int j = 0; j < 14; j++) {
HSSFCell cell2 = nextRow.createCell(j);
cell2.setCellStyle(cellStyle);
if (j == 0) {
cell2.setCellValue(course.get("courseNum").toString());//课程编号
continue;
}
if (j == 1) {
cell2.setCellValue(course.get("coursePlatform").toString());//课程平台
continue;
}
if (j == 2) {
cell2.setCellValue(course.get("courseNature").toString());//课程性质
continue;
}
if (j == 3) {
cell2.setCellValue(course.get("courseNameCN").toString());//中文名称
continue;
}
if (j == 4) {
cell2.setCellValue(course.get("courseNameEN").toString());//英文名称
continue;
}
if (j == 5) {
cell2.setCellValue(course.get("credit").toString());//学分
continue;
}
if (j == 6) {
cell2.setCellValue(course.get("courseHour").toString());//学时
continue;
}
if (j == 7) {
cell2.setCellValue(course.get("teachHour").toString());//讲课时长
continue;
}
if (j == 8) {
cell2.setCellValue(course.get("experimentHour").toString());//实验时长
continue;
}
if (j == 9) {
cell2.setCellValue(course.get("computerHour").toString());//上机时长
continue;
}
if (j == 10) {
cell2.setCellValue(course.get("practiceHour").toString());//实践时长
continue;
}
if (j == 11) {
cell2.setCellValue(course.get("weeklyHour").toString());//周学时分配
continue;
}
if (j == 12) {
cell2.setCellValue(course.get("scoringWay").toString());//积分方式
continue;
}
if (j == 13) {
cell2.setCellValue(course.get("courseHourMethod").toString());//学时单位
continue;
}
}
} // 创建一个文件
File file = new File(fileQualifyName);
// 获取文件的父文件夹并删除文件夹下面的文件
File parentFile = file.getParentFile();
// 获取父文件夹下面的所有文件
File[] listFiles = parentFile.listFiles();
if (parentFile != null && parentFile.isDirectory()) {
for (File fi : listFiles) {
// 删除文件
fi.delete();
}
}
// 如果存在就删除
if (file.exists()) {
file.delete();
}
try {
file.createNewFile();
// 打开文件流并写入文件
FileOutputStream outputStream = org.apache.commons.io.FileUtils.openOutputStream(file);
workbook.write(outputStream);
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 设置列宽的函数
* @param sheet 对哪个sheet进行设置,
* @param colNum
*/
private void setColumnWidth(HSSFSheet sheet, int colNum) {
for (int i = 0; i < colNum; i++) {
int v = 0;
// v = Math.round(Float.parseFloat("15.0") * 37F);
v = Math.round(Float.parseFloat("16.0") * 267.5F);
sheet.setColumnWidth(i, v);
}
} //3.打开流提供下载
@MyLogAnnotation(operateDescription = "下载了课程信息")
@RequestMapping("/downCourses")
public void down(HttpServletRequest request, HttpServletResponse response,@RequestParam Map condition){
//1.查询数据
List<Map<String, Object>> datas = this.getCourseBaseInfosByCondition(condition);
//2.写入excel
String dir = ResourcesUtil.getValue("path","courseExcelFile");
String fileName = DefaultValue.COURSE_DEFAULT_FILENAME;
String fileQualifyName = dir + fileName;//生成的excel名字
this.writeCourse2LocalExcel(datas,fileQualifyName);//写入数据(生成文件)
//3.打开流提供下载
//获取输入流
try {
InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileQualifyName)));
fileName = URLEncoder.encode(fileName,"UTF-8");
//设置文件下载头
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
//1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
response.setContentType("multipart/form-data");
BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
int len = 0;
while((len = bis.read()) != -1){
out.write(len);
out.flush();
}
out.close();
} catch (Exception e) {
logger.error("下载课程信息出错!",e);
}
}
}
Java将list数据导出到Excel——(八)的更多相关文章
- java中的数据导出到Excel表中
整个项目中导出数据到.Excel的源码 import java.io.BufferedOutputStream; import java.io.FileInputStream; import java ...
- Java利用Apache POI将数据库数据导出为excel
将数据库中的数据导出为excel文件,供其他人查看 public class POITest { public static void main(String[] args) { POITest te ...
- struts2结合poi-3.7实现数据导出为excel
我们在处理数据的时候,有可能要将数据导出到excel文件中,那么java中是怎么实现的呢?apache开发的poi就可以帮我们实现啦,它也是开源的代码,导入相应的jar包,就可以轻松实现,下面让我们来 ...
- 大批量数据导出到Excel的实现
在平时的项目中,将数据导出到Excel的需求是很常见的,在此对一些常见的方法做以总结,并提供一种大数据量导出的实现. OLEDB 使用OLEDB可以很方便导出Excel,思路很简单,处理时将Exc ...
- 学习笔记 DataGridView数据导出为Excel
DataGridView数据导出为Excel 怎样把WinForm下的“DGV”里的绑定数据库后的数据导出到Excel中. 比如:在窗体里有个一“DGV”,DataGridView1,绑定了数据源 ...
- 将C1Chart数据导出到Excel
大多数情况下,当我们说将图表导出到Excel时,意思是将Chart当成图片导出到Excel中.如果是这样,你可以参考帮助文档中保存和导出C1Chart章节. 不过,也有另一种情况,当你想把图表中的数据 ...
- vb.net-三种将datagridview数据导出为excel文件的函数
第一种方法较慢,但是数据格式都比较好,需要引用excel的 Microsoft.Office.Interop.Excel.dll office.dll #Region "导出excel函数 ...
- 数据导出至Excel文件--好库编程网http://code1.okbase.net/codefile/SerializeHelper.cs_2012122018724_118.htm
using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; ...
- 数据导出到Excel中
自己修改后的一个数据导出到Excel的方法,粘出来与大家共享. 只需要将 System.Web.HttpContext.Current.Response.Charset = ...
随机推荐
- Educational Codeforces Round 3 C. Load Balancing
C. Load Balancing time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- 如何注册CUBA Studio
拿着注册码不会注册,我也是醉了 运行Cuba Studio,然后在浏览器中打开,不要新建项目,这时右上角有一个英文[Register]和一个单选开关.如下: 这个英文不是这个单选开关的说明,它是一个超 ...
- MT【228】整数解的个数
求方程$x+y+z=24$的整数解的个数,要求$1\le x\le 5,12\le y\le 18,-1\le z\le12$ 解:设$a_r$是方程$X+Y+Z=r$的满足上述要求的整数解的个数,那 ...
- Android8.0运行时权限策略变化和适配方案
版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.comAndroid8.0也就是Android O即将要发布了,有很多新特性,目前我们可以通过AndroidS ...
- matplotlib 刻度,坐标轴不可见
plt.gray():只有黑白两色,没有中间的渐进色 1. 关闭坐标刻度 plt.xticks([]) plt.yticks([]) 关闭坐标轴: plt.axis('off') 注意,类似的这些操作 ...
- shell一些不为人知的技巧
!$!$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串.如:你可能会这样:$mkdir mydir$mv mydir yourdir$cd yourdir可以改成:$mkdir mydir$ ...
- 【洛谷P3919】可持久化数组
题目大意:需要维护一个长度为 N 的数组,支持在历史版本上单点修改和单点查询. 题解:显然,如果直接暴力维护的话会 MLE.因此,采用线段树进行维护,使得空间复杂度由 \(O(mn)\) 降至 \(O ...
- js数组作为参数用ajax向后台传参数
/*前台往后台传参数时,可以这样写*/ var chessId = "123"; var i=0; var data = []; /*添加单个参数*/ data.push({nam ...
- 自动清理MySQL binlog日志
开启MySQL binlog日志的服务器,如果不设置自动清理日志,默认binlog日志一直保留着,时间一长,服务器磁盘空间被binlog日志占满,导致MySQL数据库出错. 使用下面方法可以安全清理b ...
- 20181114 Redis
Redis 下载 Windows版本 Windows版本 已经有很久没有更新了,建议还是使用Linux版本 Linux版本 官网下载即可 配置文件 Windows版本 redis.windows.co ...