- 浏览: 10011 次
- 性别:
- 来自: 上海
最新评论
jsp页面
//导Excel
function makeExcel(){
var startDate=$('#startDate').val();
var endDate=$('#endDate').val();
if('' == startDate || null == startDate){
alert('开始日期不能为空!');
$('#startDate').focus();
return false ;
}
if('' == endDate || null == endDate){
alert('终止日期不能为空!');
$('#endDate').focus();
return false ;
}
if(confirm("确认导出Excel吗?")){
window.location.href="<%=basePath%>jsp/pmas/custReportAction!makeExcelYhsdgc.action?startDate="+startDate+"&endDate="+endDate;
}
}
------------------------------------------------------
Java代码
public void makeExcelYhsdgc(){
HttpServletResponse response = ServletActionContext.getResponse();
Map<String, String> param = new HashMap<String, String>();
param.put("startDate", startDate);
param.put("endDate", endDate);
List resList = new ArrayList();
String filename = "10kV及以上用户受电工程信息明细表.xls";
try {
filename = URLEncoder.encode(filename, "UTF-8");
} catch (UnsupportedEncodingException e1) {
logger.error("不支持UTF-8编码", e1);
}
response.addHeader("Content-Disposition", "attachment;filename="+ filename);
response.setContentType("application/msexcel;charset=UTF-8");// 定义输出类型
resList = icustReportService.queryYhsdgc(param);
ServletOutputStream sos = null;
ByteArrayOutputStream out = null;
try {
sos = response.getOutputStream();
Workbook wb = makeYhsdgcWorkbook(resList);
out = new ByteArrayOutputStream();
wb.write(out);
byte[] buf = out.toByteArray();
sos.write(buf);
sos.flush();
} catch (IOException e) {
logger.error("Excel文件导出异常", e);
} finally {
try {
if (sos != null) {
sos.close();
}
if (out != null) {
out.close();
}
} catch (IOException e) {
logger.error("Excel文件导出异常", e);
}
}
}
-------- makeYhsdgcWorkbook(resList) 方法
private Workbook makeYhsdgcWorkbook(List<CustMonthInfo> list) throws IOException {
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("10kV及以上用户受电工程信息明细表");
CellStyle styleTitle = wb.createCellStyle();
styleTitle.setBorderBottom(CellStyle.BORDER_THIN);
styleTitle.setBorderTop(CellStyle.BORDER_THIN);
styleTitle.setBorderLeft(CellStyle.BORDER_THIN);
styleTitle.setBorderRight(CellStyle.BORDER_THIN);
styleTitle.setAlignment(CellStyle.ALIGN_CENTER);
styleTitle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
Font fontTitle = wb.createFont();
fontTitle.setBoldweight(Font.BOLDWEIGHT_BOLD);
fontTitle.setFontHeightInPoints((short) 16);
styleTitle.setFont(fontTitle);
// Title
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("10kV及以上用户受电工程信息明细表");
cell.setCellStyle(styleTitle);
CellRangeAddress rangeAddress = new CellRangeAddress(0, 0, 0, 22);
ExcelUtil.addMergedRegionStyle(wb, sheet, rangeAddress, styleTitle);
// 表头
CellStyle style = wb.createCellStyle();
style.setBorderBottom(CellStyle.BORDER_THIN);
style.setBorderTop(CellStyle.BORDER_THIN);
style.setBorderLeft(CellStyle.BORDER_THIN);
style.setBorderRight(CellStyle.BORDER_THIN);
style.setAlignment(CellStyle.ALIGN_CENTER);
style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
Font font = wb.createFont();
font.setBoldweight(Font.BOLDWEIGHT_NORMAL);
fontTitle.setFontHeightInPoints((short) 12);
style.setFont(font);
row = sheet.createRow(1);
// 序号
cell = row.createCell(0);
cell.setCellValue("序号");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 0,0), style);
sheet.setColumnWidth((short) 0, (short) 1800);
// 申请编号
cell = row.createCell(1);
cell.setCellValue("申请编号");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 1,1), style);
sheet.setColumnWidth((short) 1, (short) 4000);
// 户名
cell = row.createCell(2);
cell.setCellValue("户名");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 2,2), style);
sheet.setColumnWidth((short) 2, (short) 10000);
// 地址
cell = row.createCell(3);
cell.setCellValue("地址");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 3,3), style);
sheet.setColumnWidth((short) 3, (short) 10000);
// 用电联系人
cell = row.createCell(4);
cell.setCellValue("用电联系人");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 4,4), style);
sheet.setColumnWidth((short) 4, (short) 4000);
// 联系电话
cell = row.createCell(5);
cell.setCellValue("联系电话");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 5,5), style);
sheet.setColumnWidth((short) 5, (short) 7000);
// 供电容量
cell = row.createCell(6);
cell.setCellValue("供电容量");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 6,6), style);
sheet.setColumnWidth((short) 6, (short) 4000);
// 供电电压
cell = row.createCell(7);
cell.setCellValue("供电电压");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 7,7), style);
sheet.setColumnWidth((short) 7, (short) 4000);
// 申请时间
cell = row.createCell(8);
cell.setCellValue("申请时间");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 1, 8,8), style);
sheet.setColumnWidth((short) 7, (short) 5000);
//接电时间
cell = row.createCell(9);
cell.setCellValue("接电时间");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 1,9, 9), style);
sheet.setColumnWidth((short) 7, (short) 4000);
// 设计单位
cell = row.createCell(10);
cell.setCellValue("设计单位");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 1,10, 10), style);
sheet.setColumnWidth((short) 7, (short) 10000);
// 施工单位
cell = row.createCell(11);
cell.setCellValue("施工单位");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 1,11, 11), style);
sheet.setColumnWidth((short) 7, (short) 10000);
// 高压设备生产厂家
cell = row.createCell(12);
cell.setCellValue("高压设备生产厂家");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 1,12, 12), style);
sheet.setColumnWidth((short) 7, (short) 10000);
// 有无供电方关联企业
cell = row.createCell(13);
cell.setCellValue("有无供电方关联企业");
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 1,13, 13), style);
sheet.setColumnWidth((short) 7, (short) 3000);
// 明细数据
for (int i = 0; i < list.size(); i++) {
CustMonthInfo custMonthInfo =(CustMonthInfo) list.get(i);
row = sheet.createRow(i+3);
// 序号
cell = row.createCell(0);
cell.setCellValue(""+(i+1));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 0, 0), style);
// 申请编号
cell = row.createCell(1);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getAppid()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 1, 1), style);
// 户名
cell = row.createCell(2);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getCustname()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 2, 2), style);
// 地址
cell = row.createCell(3);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getAddress()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 3, 3), style);
// 用电联系人
cell = row.createCell(4);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getContactname()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 4, 4), style);
// 联系电话
cell = row.createCell(5);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getContactphone()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 5, 5), style);
// 供电容量
cell = row.createCell(6);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getCapa()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 6, 6), style);
// 供电电压
cell = row.createCell(7);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getVoltage()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 7, 7), style);
//申请时间
cell = row.createCell(8);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getApptime()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 8, 8), style);
//接电时间
cell = row.createCell(9);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getRealtime()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 9, 9), style);
//设计单位
cell = row.createCell(10);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getDesignname()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 10, 10), style);
//施工单位
cell = row.createCell(11);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getFidname()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 11, 11), style);
//高压设备生产厂家
cell = row.createCell(12);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getFactory()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 12, 12), style);
//有无供电方关联企业
cell = row.createCell(13);
cell.setCellValue(ExcelUtil.getNotNullString(custMonthInfo.getGlqy()));
cell.setCellStyle(style);
ExcelUtil.addMergedRegionStyle(wb, sheet, new CellRangeAddress(1, 2, 13, 13), style);
}
return wb;
}
相关推荐
在ASP.NET中实现Excel文件导出,通常有以下步骤: 1. **创建ASP.NET Web页面**:首先,我们需要创建一个ASP.NET Web Forms或MVC项目,并添加一个页面。在这个页面上,我们将放置用于触发导出操作的按钮或链接。 2....
C# .net 4.8 版本处理,游戏辅助工具,可以对excel文件导出,protobuf文件的编译.zipC# .net 4.8 版本处理,游戏辅助工具,可以对excel文件导出,protobuf文件的编译.zipC# .net 4.8 版本处理,游戏辅助工具,可以对...
"基于Java反射机制的Excel文件导出实现" 本文探讨了基于Java反射机制的Excel文件导出实现的原理和方法。通过利用Java的反射机制,实现了Excel文件的导出,提高了导出文件的个性化和易用性。 Java反射机制是Java...
本文将深入探讨如何使用POI库来实现Excel文件的导出,以及如何将图片URL转换为图片文件并与其他文件一起打包成压缩包。 首先,让我们了解一下Apache POI。POI是Java开发者的开源API,它允许程序创建、修改和显示...
java Excel文件导出java类java Excel文件导出java类
用于考核的系统,导出EXCEL导出EXCEL
基于Goframe的Excel文件导出
在Vue.js框架中,处理Excel文件的导入与导出是一项常见的需求,特别是在数据管理或数据分析应用中。Vue Excel导入导出通常涉及到JavaScript库的使用,例如`xlsx`库,它是一个强大的JavaScript工具,用于处理Excel...
提供列表查询匹配的excel数据导出,引用该工具类,只需要在页面上引用导出的自定义标签,然后按照提供的使用文档进行配置,后端action层或者controller层,实现其数据加载的抽象方法即可(使用方式也在文档中说明)...
不支持HTML
这个实例提供了两种方法来导出Excel文件:通过Servlet和通过main方法。这两种方法都是在Java环境中操作Excel数据的有效方式。 首先,让我们详细了解一下Apache POI库。POI提供了一个API,允许开发者在Java应用程序...
在Excel中进行数据管理和分析时,我们经常需要将数据导出为Excel文件,以便于分享、备份或进一步处理。"Excel通用导出excel文件"这个主题涵盖了如何在不同情况下高效地实现这一目标,不论你是要处理小规模的数据还是...
通常,我们先将数据转换为适合Excel的格式,然后利用`blob`对象和`window.URL.createObjectURL`创建一个临时的下载链接,用户点击后即可下载Excel文件。 8. **性能优化**:当数据量很大时,一次性加载所有数据可能...
Spring Boot Excel文件导出下载实现代码 Spring Boot 是一种流行的 Java 框架,用于构建Web 应用程序。Excel 文件导出是许多应用程序的常见需求,本文将介绍如何使用 Spring Boot 实现 Excel 文件的直接导出下载。 ...
可以使用 `HttpServletResponse` 对象来将 excel 文件导出到浏览器中,用户可以选择是否保存 excel 文件。 七、异常处理 在导出 excel 文件时,需要捕获可能出现的异常,例如文件流异常、网络异常等。 八、源代码...
通过对这些代码的理解和学习,开发者可以快速掌握Excel文件导出的基本流程和技术要点。 #### 结论 通过上述方法,我们可以方便地使用C#实现Excel文件的导出功能。这种方式不仅简单高效,而且具有很好的灵活性,可以...
标签“导入导出”进一步确认了该程序的主要功能,即处理数据的导入到Excel文件以及从Excel文件导出数据。这可能包括从数据库、文本文件或其他数据源导入数据,或者将Excel数据导出到其他格式,如CSV、XML或数据库。 ...
4. **Excel文件导出** - 在需要导出Excel的接口中,根据业务需求查询数据库中的数据,并转换为List集合。 - 创建一个新的Workbook对象,然后创建Sheet,再在Sheet中创建Row和Cell,填充数据。 - 设置样式、合并...
在Java开发中,处理大数据量的Excel导出是一项常见的任务,尤其当数据量达到数十万条时,单个Excel文件可能会遇到性能瓶颈或格式限制。本项目针对这一问题提出了一种解决方案,即分块生成多个Excel文件,然后将它们...