/**
* 将数据确认部分的查询数据导出来
*/
public void exportDataConfirmExcel(){
Map<Object,Object> map = queryDataConfirmList();// 获得源数据
String titles = (String)map.get("title");// 表头
String[] title = titles.split(";;");
List<Object> recordLs = (List<Object>)map.get("record");// 记录
File file = new File("data.xls");
OutputStream outputStream;
try {
outputStream = new FileOutputStream(file);
WritableWorkbook workbook = Workbook.createWorkbook(outputStream);
WritableSheet sheet = workbook.createSheet("数据信息", 0); //工作表名称
//设置Excel字体
jxl.write.WritableFont wfc = new jxl.write.WritableFont(
WritableFont.ARIAL, 10, WritableFont.BOLD, false,
jxl.format.UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(
wfc);
wcfFC.setBackground(jxl.format.Colour.YELLOW);
wcfFC.setAlignment(jxl.format.Alignment.CENTRE);
//设置Excel表头
for (int i = 0; i < title.length; i++) {
sheet.setColumnView(i, 30);// 设置宽度
Label excelTitle = new Label(i, 0, title[i], wcfFC);
sheet.addCell(excelTitle);
}
wfc = new jxl.write.WritableFont(
WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,
jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
wcfFC = new jxl.write.WritableCellFormat(
wfc);
wcfFC.setAlignment(jxl.format.Alignment.CENTRE);
if(recordLs.size()>0){
for(int i = 0;i<recordLs.size();i++){
List<Object> object = (List<Object>)recordLs.get(i);
for(int j =0;j<object.size();j++){
String value = object.get(j)==null?"": object.get(j).toString();
Label C1 = new Label(j,i+1,value,wcfFC);
sheet.addCell(C1);
}
}
}
workbook.write(); //写入文件
workbook.close();
}catch(Exception e){
e.printStackTrace();
}
// 下载至客户端
HttpServletResponse response = ServletActionContext.getResponse();
ServletOutputStream sos =null;
request = ServletActionContext.getRequest();
FileInputStream fis = null;
try{
sos = response.getOutputStream();
String filename= "数据确认-"+dataCycle+".xls";
// 解决中文文件名乱码问题
if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0){
filename = new String(filename.getBytes("UTF-8"), "ISO8859-1");// firefox浏览器
}else if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0){
filename = java.net.URLEncoder.encode(filename, "UTF-8");// IE浏览器
}
response.reset();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
response.setHeader("Connection", "close");
if (file.exists()){
fis = new FileInputStream(file);//
byte b[] = new byte[1000];
int j;
while ((j = fis.read(b)) != -1){
sos.write(b, 0, j);
}
}
}catch(Exception e){
// e.printStackTrace();
}finally{
try {
fis.close();
sos.flush();
sos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
* 将数据确认部分的查询数据导出来
*/
public void exportDataConfirmExcel(){
Map<Object,Object> map = queryDataConfirmList();// 获得源数据
String titles = (String)map.get("title");// 表头
String[] title = titles.split(";;");
List<Object> recordLs = (List<Object>)map.get("record");// 记录
File file = new File("data.xls");
OutputStream outputStream;
try {
outputStream = new FileOutputStream(file);
WritableWorkbook workbook = Workbook.createWorkbook(outputStream);
WritableSheet sheet = workbook.createSheet("数据信息", 0); //工作表名称
//设置Excel字体
jxl.write.WritableFont wfc = new jxl.write.WritableFont(
WritableFont.ARIAL, 10, WritableFont.BOLD, false,
jxl.format.UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(
wfc);
wcfFC.setBackground(jxl.format.Colour.YELLOW);
wcfFC.setAlignment(jxl.format.Alignment.CENTRE);
//设置Excel表头
for (int i = 0; i < title.length; i++) {
sheet.setColumnView(i, 30);// 设置宽度
Label excelTitle = new Label(i, 0, title[i], wcfFC);
sheet.addCell(excelTitle);
}
wfc = new jxl.write.WritableFont(
WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,
jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
wcfFC = new jxl.write.WritableCellFormat(
wfc);
wcfFC.setAlignment(jxl.format.Alignment.CENTRE);
if(recordLs.size()>0){
for(int i = 0;i<recordLs.size();i++){
List<Object> object = (List<Object>)recordLs.get(i);
for(int j =0;j<object.size();j++){
String value = object.get(j)==null?"": object.get(j).toString();
Label C1 = new Label(j,i+1,value,wcfFC);
sheet.addCell(C1);
}
}
}
workbook.write(); //写入文件
workbook.close();
}catch(Exception e){
e.printStackTrace();
}
// 下载至客户端
HttpServletResponse response = ServletActionContext.getResponse();
ServletOutputStream sos =null;
request = ServletActionContext.getRequest();
FileInputStream fis = null;
try{
sos = response.getOutputStream();
String filename= "数据确认-"+dataCycle+".xls";
// 解决中文文件名乱码问题
if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0){
filename = new String(filename.getBytes("UTF-8"), "ISO8859-1");// firefox浏览器
}else if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0){
filename = java.net.URLEncoder.encode(filename, "UTF-8");// IE浏览器
}
response.reset();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
response.setHeader("Connection", "close");
if (file.exists()){
fis = new FileInputStream(file);//
byte b[] = new byte[1000];
int j;
while ((j = fis.read(b)) != -1){
sos.write(b, 0, j);
}
}
}catch(Exception e){
// e.printStackTrace();
}finally{
try {
fis.close();
sos.flush();
sos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}