Struts2导出Excel
2013-12-06 10:40
246 查看
//这Action里的java代码
@SuppressWarnings("unchecked")
public String createExcelLength() throws IOException,
InvocationTargetException {
System.out.println(inputStream);
List<Map> list = null;
Map map = new HashMap();// 装载分页函数需要的参数,里边包含每页多少条,第几页,查询条件
map.put("rows", (rows)); // 放入每页条数
map.put("page", (this.page)); // 放入当前页码
map.put("begdate", this.begdate); // 放入开始时间
map.put("enddate", this.enddate); // 放入结束时间
map.put("chanelId", this.chanelId); // 放入频道id
map.put("saleId", this.saleId); // 放入sale_id
list = amsRemainLengthService.selectAmsMeuInfo(map);
String columnNameArray = "salename,mon,ty,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31";
String showNameAry = "销售品名称,月份,类型,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31";
HSSFWorkbook workbook = new HSSFWorkbook(); // 产生工作簿对象
HSSFSheet sheet = workbook.createSheet(); // 产生工作表对象
HSSFFont columnHeadFont = workbook.createFont();
columnHeadFont.setFontName("宋体");
columnHeadFont.setFontHeightInPoints((short) 12);
columnHeadFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 列头的样式
HSSFCellStyle columnHeadStyle = workbook.createCellStyle();
columnHeadStyle.setFont(columnHeadFont);
columnHeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
columnHeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 设置第一个工作表的名称为firstSheet
// 为了工作表能支持中文,设置字符编码为UTF_16
workbook.setSheetName(0, "firstSheet");
// 产生一行
HSSFRow row = sheet.createRow((short) 0);
String[] showNameArray = showNameAry.split(",");
// 产生第一个单元格
for (int i = 0; i < showNameArray.length; i++) {
HSSFCell cell = row.createCell(i);
// 设置单元格内容为字符串型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(showNameArray[i]);
}
// 为了能在单元格中写入中文,设置字符编码为UTF_16。
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
int rowNum = 1;
// 循环往单元格中写入信息
// 根据数据库里面返回的list的size循环创建行
for (int i = 0; i < list.size(); i++) {
Map mapData = list.get(i);
HSSFRow row1 = sheet.createRow((short) rowNum);
String[] aaaa = columnNameArray.split(",");
for (int j = 0; j < 34; j++) {
HSSFCell cell1 = row1.createCell(j);
if (mapData.get("fl").equals("0")) {
// 设置单元格内容为字符串型
cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
if (mapData.containsKey(aaaa[j])) {
cell1.setCellValue(mapData.get(aaaa[j]).toString());
} else {
cell1.setCellValue("");
}
} else {
if (mapData.containsKey(aaaa[j])) {
Font font = workbook.createFont();
font.setColor(HSSFColor.RED.index);
columnHeadStyle.setFont(font);
cell1.setCellStyle(columnHeadStyle);
// 设置单元格内容为字符串型
cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
cell1.setCellValue(mapData.get(aaaa[j]).toString());
} else {
cell1.setCellValue("");
}
}
在struts2.
}
rowNum += 1;
}
this.filename = "AmsRemainLength.xls";
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
System.out.println("aa");
try {
workbook.write(outputStream);
inputStream = new ByteArrayInputStream(outputStream.toByteArray());
outputStream.flush();
outputStream.close();
return "excel";
} catch (Exception e) {
e.printStackTrace();
return "excel";
}
}
在struts2.xml里面的配置
<result name="excel" type="stream">
<!-- 指定下载文件的内容类型,text/plain是默认类型 -->
<param name="contentType">text/plain</param>
<!--
inputName默认值是inputStream,如果action中用于读取下载文件内容的属性名是inputStream,那么可以省略这个参数
-->
<param name="inputName">inputStream</param>
<!--动态获取文件名,从Action中的取得filename-->
<param name="contentDisposition">
attachment;filename="${filename}"
</param>
<param name="bufferSize">2048</param>
</result>
备注:导入的excel文件必须是microsoft 的office。不能用WPS的(WPS的excel不能读取)
@SuppressWarnings("unchecked")
public String createExcelLength() throws IOException,
InvocationTargetException {
System.out.println(inputStream);
List<Map> list = null;
Map map = new HashMap();// 装载分页函数需要的参数,里边包含每页多少条,第几页,查询条件
map.put("rows", (rows)); // 放入每页条数
map.put("page", (this.page)); // 放入当前页码
map.put("begdate", this.begdate); // 放入开始时间
map.put("enddate", this.enddate); // 放入结束时间
map.put("chanelId", this.chanelId); // 放入频道id
map.put("saleId", this.saleId); // 放入sale_id
list = amsRemainLengthService.selectAmsMeuInfo(map);
String columnNameArray = "salename,mon,ty,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31";
String showNameAry = "销售品名称,月份,类型,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31";
HSSFWorkbook workbook = new HSSFWorkbook(); // 产生工作簿对象
HSSFSheet sheet = workbook.createSheet(); // 产生工作表对象
HSSFFont columnHeadFont = workbook.createFont();
columnHeadFont.setFontName("宋体");
columnHeadFont.setFontHeightInPoints((short) 12);
columnHeadFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 列头的样式
HSSFCellStyle columnHeadStyle = workbook.createCellStyle();
columnHeadStyle.setFont(columnHeadFont);
columnHeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 左右居中
columnHeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 设置第一个工作表的名称为firstSheet
// 为了工作表能支持中文,设置字符编码为UTF_16
workbook.setSheetName(0, "firstSheet");
// 产生一行
HSSFRow row = sheet.createRow((short) 0);
String[] showNameArray = showNameAry.split(",");
// 产生第一个单元格
for (int i = 0; i < showNameArray.length; i++) {
HSSFCell cell = row.createCell(i);
// 设置单元格内容为字符串型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(showNameArray[i]);
}
// 为了能在单元格中写入中文,设置字符编码为UTF_16。
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
int rowNum = 1;
// 循环往单元格中写入信息
// 根据数据库里面返回的list的size循环创建行
for (int i = 0; i < list.size(); i++) {
Map mapData = list.get(i);
HSSFRow row1 = sheet.createRow((short) rowNum);
String[] aaaa = columnNameArray.split(",");
for (int j = 0; j < 34; j++) {
HSSFCell cell1 = row1.createCell(j);
if (mapData.get("fl").equals("0")) {
// 设置单元格内容为字符串型
cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
if (mapData.containsKey(aaaa[j])) {
cell1.setCellValue(mapData.get(aaaa[j]).toString());
} else {
cell1.setCellValue("");
}
} else {
if (mapData.containsKey(aaaa[j])) {
Font font = workbook.createFont();
font.setColor(HSSFColor.RED.index);
columnHeadStyle.setFont(font);
cell1.setCellStyle(columnHeadStyle);
// 设置单元格内容为字符串型
cell1.setCellType(HSSFCell.CELL_TYPE_STRING);
cell1.setCellValue(mapData.get(aaaa[j]).toString());
} else {
cell1.setCellValue("");
}
}
在struts2.
}
rowNum += 1;
}
this.filename = "AmsRemainLength.xls";
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
System.out.println("aa");
try {
workbook.write(outputStream);
inputStream = new ByteArrayInputStream(outputStream.toByteArray());
outputStream.flush();
outputStream.close();
return "excel";
} catch (Exception e) {
e.printStackTrace();
return "excel";
}
}
在struts2.xml里面的配置
<result name="excel" type="stream">
<!-- 指定下载文件的内容类型,text/plain是默认类型 -->
<param name="contentType">text/plain</param>
<!--
inputName默认值是inputStream,如果action中用于读取下载文件内容的属性名是inputStream,那么可以省略这个参数
-->
<param name="inputName">inputStream</param>
<!--动态获取文件名,从Action中的取得filename-->
<param name="contentDisposition">
attachment;filename="${filename}"
</param>
<param name="bufferSize">2048</param>
</result>
备注:导入的excel文件必须是microsoft 的office。不能用WPS的(WPS的excel不能读取)
相关文章推荐
- struts2导出数据为excel
- struts2 导出excel
- Struts2简单导出数据到excel中方法(实例)
- struts2导入、导出 excel
- struts2导出excel java 导出excel
- struts2 利用 POI 导出 excel
- java/Struts2 jqgrid 导出excel
- java --struts2数据库导出Excel文件,下载提示
- struts2利用poi导出excel文件
- Struts2 poi导出excel
- 【SSH】利用struts2 特性 导出excel
- 结合struts2实现的通用导出excel实现详细介绍
- struts2 poi导出excel实例代码下载
- struts2-16导入导出Excel数据参考
- struts2 poi 把数据导出到excel
- struts2导出数据到excel并下载
- Struts2 POI导出Excel 基本思路解析及相关示例代码
- struts2 用jxl 导出excel
- 实例:Struts2结合DisplayTag、DbUtils实现查询分页、导出Excel