java代码导出数据到Excel、js导出数据到Excel(三)
jsp内容忽略,仅写个出发按钮:
<button style="width: 100px" onclick="expertExcel()" >JS导出Excel</button>
<button style="width: 100px" onclick="expertWord()" >JS导出Word</button>
<button style="width: 100px" onclick="getDataToExcel2()" >代码导出</button>
<div class ='main' id='main'></div>
<div class ='bottom' id='buttom12'>
</div>
</div>
</body>
</html>
<script type="text/javascript">
//后台弹出框式导出数据到Excel
function getDataToExcel2(){
var sssj = document.getElementById("time_ctrol").value;
var xtmc = document.getElementById("st").value;
xtmc = encodeURI(encodeURI(xtmc));
var requestURL = "./DataToExcel.jsp?type=getDataToExcel&sssj=" + sssj + "&xtmc=" + xtmc;
window.open(requestURL);
}
function createXMLHttpRequest(){
if (window.ActiveXObject) {
XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
} else {
XMLhttpObject = new XMLHttpRequest();
}
return XMLhttpObject;
}
</script>
//js导出EXCEL
<script type="text/javascript">
function expertExcel(){
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var sel=document.body.createTextRange();
sel.moveToElementText(main);
sel.select();
sel.execCommand("Copy");
oSheet.Paste();
oXL.Visible = true;
}
<script type="text/javascript">
function expertExcel(){
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var sel=document.body.createTextRange();
sel.moveToElementText(main);
sel.select();
sel.execCommand("Copy");
oSheet.Paste();
oXL.Visible = true;
}
代码导出页面,抄袭来自csdn:
<%
//这样写不太科学,因为filename一般不会写死
//response.setHeader("Content-Disposition", "attachment;filename= aa.xls");
//response.setContentType("application/vnd.ms-excel");
%>
<%
//这样写不太科学,因为filename一般不会写死
//response.setHeader("Content-Disposition", "attachment;filename= aa.xls");
//response.setContentType("application/vnd.ms-excel");
%>
<%@ page language="java" import="java.util.*" contentType="application/vnd.ms-excel;charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.net.URLDecoder"%>
<%@ page import="nariis.pi3000.ythTjFx.sbjk.pageHelp.*"%>
<%@ page import="org.apache.poi.hssf.usermodel.*"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="nariis.pi3000.ythTjFx.sbjk.entity.DataEntity"%>
<%@ page import="java.net.URLDecoder"%>
<%@ page import="nariis.pi3000.ythTjFx.sbjk.pageHelp.*"%>
<%@ page import="org.apache.poi.hssf.usermodel.*"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="nariis.pi3000.ythTjFx.sbjk.entity.DataEntity"%>
<%
String type = request.getParameter("type");
String sssj = request.getParameter("sssj");
String xtmc = request.getParameter("xtmc");
xtmc = URLDecoder.decode(xtmc,"UTF-8");
System.out.print(type);
System.out.print(sssj);
System.out.print(xtmc);
String path = "Excel"; //注意,千万别写中文
response.setHeader("Content-Disposition", "attachment;filename=" + path +".xls");
if("getDataToExcel".equals(type)){
PageService pageService = new PageService();
ArrayList<DataEntity> list = pageService.getAllDataToExcel2(sssj);
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("学生表一");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow((int) 0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue("SX");
cell.setCellStyle(style);
cell = row.createCell((short) 1);
cell.setCellValue("DWMC");
cell.setCellStyle(style);
cell = row.createCell((short) 2);
cell.setCellValue("SFGYPP");
cell.setCellStyle(style);
cell = row.createCell((short) 3);
cell.setCellValue("SJKLX");
cell.setCellStyle(style);
cell = row.createCell((short) 4);
cell.setCellValue("JSJSL");
cell.setCellStyle(style);
cell = row.createCell((short) 5);
cell.setCellValue("SSSJ");
cell.setCellStyle(style);
cell = row.createCell((short) 6);
cell.setCellValue("XTMC");
cell.setCellStyle(style);
cell = row.createCell((short) 7);
for (int i = 0; i < list.size(); i++)
{
int j =0;
row = sheet.createRow((int) i + 1);
DataEntity dataEntity = (DataEntity) list.get(i);
// 第四步,创建单元格,并设置值
row.createCell((short) j++).setCellValue(dataEntity.getSx());
row.createCell((short) j++).setCellValue(dataEntity.getDWMC());
row.createCell((short) j++).setCellValue(dataEntity.getSfgypp());
row.createCell((short) j++).setCellValue(dataEntity.getSjklx());
row.createCell((short) j++).setCellValue(dataEntity.getJsjsl());
row.createCell((short) j++).setCellValue(dataEntity.getSssj());
row.createCell((short) j++).setCellValue(dataEntity.getXtmc());
}
// 第六步,将文件存到指定位置
try
{
// OutputStream outp=response.getOutputStream();
ServletOutputStream outp = response.getOutputStream();
outp.flush();
wb.write(outp);
outp.close();
response.flushBuffer();
out.clear();
out=pageContext.pushBody();
}
catch (Exception e)
{
e.printStackTrace();
}
}
String type = request.getParameter("type");
String sssj = request.getParameter("sssj");
String xtmc = request.getParameter("xtmc");
xtmc = URLDecoder.decode(xtmc,"UTF-8");
System.out.print(type);
System.out.print(sssj);
System.out.print(xtmc);
String path = "Excel"; //注意,千万别写中文
response.setHeader("Content-Disposition", "attachment;filename=" + path +".xls");
if("getDataToExcel".equals(type)){
PageService pageService = new PageService();
ArrayList<DataEntity> list = pageService.getAllDataToExcel2(sssj);
// 第一步,创建一个webbook,对应一个Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("学生表一");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow((int) 0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue("SX");
cell.setCellStyle(style);
cell = row.createCell((short) 1);
cell.setCellValue("DWMC");
cell.setCellStyle(style);
cell = row.createCell((short) 2);
cell.setCellValue("SFGYPP");
cell.setCellStyle(style);
cell = row.createCell((short) 3);
cell.setCellValue("SJKLX");
cell.setCellStyle(style);
cell = row.createCell((short) 4);
cell.setCellValue("JSJSL");
cell.setCellStyle(style);
cell = row.createCell((short) 5);
cell.setCellValue("SSSJ");
cell.setCellStyle(style);
cell = row.createCell((short) 6);
cell.setCellValue("XTMC");
cell.setCellStyle(style);
cell = row.createCell((short) 7);
for (int i = 0; i < list.size(); i++)
{
int j =0;
row = sheet.createRow((int) i + 1);
DataEntity dataEntity = (DataEntity) list.get(i);
// 第四步,创建单元格,并设置值
row.createCell((short) j++).setCellValue(dataEntity.getSx());
row.createCell((short) j++).setCellValue(dataEntity.getDWMC());
row.createCell((short) j++).setCellValue(dataEntity.getSfgypp());
row.createCell((short) j++).setCellValue(dataEntity.getSjklx());
row.createCell((short) j++).setCellValue(dataEntity.getJsjsl());
row.createCell((short) j++).setCellValue(dataEntity.getSssj());
row.createCell((short) j++).setCellValue(dataEntity.getXtmc());
}
// 第六步,将文件存到指定位置
try
{
// OutputStream outp=response.getOutputStream();
ServletOutputStream outp = response.getOutputStream();
outp.flush();
wb.write(outp);
outp.close();
response.flushBuffer();
out.clear();
out=pageContext.pushBody();
}
catch (Exception e)
{
e.printStackTrace();
}
}
%>