public void exportData(){
WritableWorkbook book = null;
OutputStream os = null;
InputStream in = null;
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
ServletContext servletContext = (ServletContext) context.getExternalContext().getContext();//context.getServletContext().getRealPath("/upload/");
//设置缓存路径
File filepath = new File(servletContext.getRealPath("/downloadTemp/"));
if(!filepath.exists()){
filepath.mkdirs();
}
//设置文件
File f = new File(filepath+File.separator+"temp.xls");
String[] titleIndex = {"地市","全网网元总数","全网未成环网元","全网成环网元","全网成环率","接入层基站总数","接入层基站未成环网元","接入层基站成环网元","基站成环率"};
String[] dataIndex = {"city","meCount","lianMeCount","exceptLianMeCount","exceptLianMeRatio","btsMeCount","btsLianMeCount","exceptBtsLianMeCount","exceptBtsLianMeRatio"};
try {
book = Workbook.createWorkbook(f);
WritableSheet sheet = book.createSheet("SDH成环率", 0);
//添加列名
for(int i = 0;i <titleIndex.length;i++){
Label index = new Label(i,0,titleIndex[i]);
sheet.addCell(index);
}
Jdbc jdbc=new Jdbc();
dataList=jdbc.list();
//添加内容
int i=1;
for(Map<String,Object> map: dataList){
for(int j = 0;j < dataIndex.length;j++){
String datacontent = String.valueOf( map.get(dataIndex[j]));
Label data =new Label(j, i, datacontent);
sheet.addCell(data);
}
++i;
}
book.write();
book.close();
String filename = java.net.URLEncoder.encode(""+"SDH成环率.xls", "UTF-8");
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment;filename="
+ filename );
os = response.getOutputStream();
in = new FileInputStream(f.getPath());
byte[] buffer = new byte[1024];
int ir = -1;
while ((ir = in.read(buffer)) != -1) {
os.write(buffer, 0, ir);
}
context.responseComplete();
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RowsExceededException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
WritableWorkbook book = null;
OutputStream os = null;
InputStream in = null;
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
ServletContext servletContext = (ServletContext) context.getExternalContext().getContext();//context.getServletContext().getRealPath("/upload/");
//设置缓存路径
File filepath = new File(servletContext.getRealPath("/downloadTemp/"));
if(!filepath.exists()){
filepath.mkdirs();
}
//设置文件
File f = new File(filepath+File.separator+"temp.xls");
String[] titleIndex = {"地市","全网网元总数","全网未成环网元","全网成环网元","全网成环率","接入层基站总数","接入层基站未成环网元","接入层基站成环网元","基站成环率"};
String[] dataIndex = {"city","meCount","lianMeCount","exceptLianMeCount","exceptLianMeRatio","btsMeCount","btsLianMeCount","exceptBtsLianMeCount","exceptBtsLianMeRatio"};
try {
book = Workbook.createWorkbook(f);
WritableSheet sheet = book.createSheet("SDH成环率", 0);
//添加列名
for(int i = 0;i <titleIndex.length;i++){
Label index = new Label(i,0,titleIndex[i]);
sheet.addCell(index);
}
Jdbc jdbc=new Jdbc();
dataList=jdbc.list();
//添加内容
int i=1;
for(Map<String,Object> map: dataList){
for(int j = 0;j < dataIndex.length;j++){
String datacontent = String.valueOf( map.get(dataIndex[j]));
Label data =new Label(j, i, datacontent);
sheet.addCell(data);
}
++i;
}
book.write();
book.close();
String filename = java.net.URLEncoder.encode(""+"SDH成环率.xls", "UTF-8");
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment;filename="
+ filename );
os = response.getOutputStream();
in = new FileInputStream(f.getPath());
byte[] buffer = new byte[1024];
int ir = -1;
while ((ir = in.read(buffer)) != -1) {
os.write(buffer, 0, ir);
}
context.responseComplete();
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RowsExceededException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}