⑴ javaweb中通過POI生成Excel並彈出下載窗口!
把response的輸出類型設置成
response.setContentType("application/x-download
response.addHeader("Content-Disposition","attachment;filename=myexcel.xls" );
POI結果直接給response的輸出流,就可以了
⑵ java中如何實現網頁以Excel的形式下載的功能
兩種方式:1)將你的網頁報表用poi或jxl,轉化為excel格式,然後通過servlet的流輸出 2)使用現有的報表工具實現,我用finereport,其他的你也可以去Google搜下。
⑶ java項目中怎麼實現jsp頁面Excel模板下載並彈框。
controller層關鍵代碼:
@RequestMapping(value="/excel")
publicModelAndViewexportExcel()throwsException{
ModelAndViewmv=newModelAndView();
PageDatapd=newPageData();
pd=this.getPageData();
Map<String,Object>dataMap=newHashMap<String,Object>();
List<String>titles=newArrayList<String>();
titles.add("辦事處");//1
titles.add("當日新增掃碼商戶(個)");//2
titles.add("當日交易筆數(筆)");//3
titles.add("當日交易金額");//4
titles.add("當日收益");//5
titles.add("累計新增掃碼商戶(個)");//6
titles.add("累計交易筆數(筆)");//7
titles.add("累計交易金額");//8
titles.add("累計收益");//9
dataMap.put("titles",titles);
Pagepage=newPage();
page.setPd(pd);
List<PageData>varOList=agencyService.list(page);
List<PageData>varList=newArrayList<PageData>();
for(inti=0;i<varOList.size();i++){
PageDatavpd=newPageData();
vpd.put("var1",varOList.get(i).get("AGENCYNAME").toString());//1
vpd.put("var2",varOList.get(i).get("TODAYINSTALL").toString());//2
vpd.put("var3",varOList.get(i).get("TODAYTRANS").toString());//3
vpd.put("var4",varOList.get(i).get("TODAYPRICE").toString());//4
vpd.put("var5",varOList.get(i).get("TODAYPAYMENT").toString());//5
vpd.put("var6",varOList.get(i).get("TOTALINSTALL").toString());//6
vpd.put("var7",varOList.get(i).get("TOTALTRANS").toString());//7
vpd.put("var8",varOList.get(i).get("TOTALPRICE").toString());//8
vpd.put("var9",varOList.get(i).get("TOTALPAYMENT").toString());//9
varList.add(vpd);
}
dataMap.put("varList",varList);
ObjectExcelViewerv=newObjectExcelView();
mv=newModelAndView(erv,dataMap);
returnmv;
}
POI生成EXCEL關鍵代碼:
{
@SuppressWarnings("deprecation")
@Override
(Map<String,Object>model,
HSSFWorkbookworkbook,HttpServletRequestrequest,
HttpServletResponseresponse)throwsException{
//TODOAuto-generatedmethodstub
Datedate=newDate();
Stringfilename=Tools.date2Str(date,"yyyyMMddHHmmss");
HSSFSheetsheet;
HSSFCellcell;
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment;filename="+filename+".xls");
sheet=workbook.createSheet("sheet1");
List<String>titles=(List<String>)model.get("titles");
intlen=titles.size();
HSSFCellStyleheaderStyle=workbook.createCellStyle();//標題樣式
headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
HSSFFontheaderFont=workbook.createFont(); //標題字體
headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
headerFont.setFontHeightInPoints((short)11);
headerStyle.setFont(headerFont);
shortwidth=20,height=25*20;
sheet.setDefaultColumnWidth(width);
for(inti=0;i<len;i++){//設置標題
Stringtitle=titles.get(i);
cell=getCell(sheet,0,i);
cell.setCellStyle(headerStyle);
setText(cell,title);
}
sheet.getRow(0).setHeight(height);
HSSFCellStylecontentStyle=workbook.createCellStyle();//內容樣式
contentStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
List<PageData>varList=(List<PageData>)model.get("varList");
intvarCount=varList.size();
for(inti=0;i<varCount;i++){
PageDatavpd=varList.get(i);
for(intj=0;j<len;j++){
Stringvarstr=vpd.getString("var"+(j+1))!=null?vpd.getString("var"+(j+1)):"";
cell=getCell(sheet,i+1,j);
cell.setCellStyle(contentStyle);
setText(cell,varstr);
}
}
}
}
⑷ java如何另存導出Excel
1./**
* 出險信息導出到excel(fc)
* @param mapping
* @param form
* @param request
* @param response
* @throws IOException
*/
public void exportActoExcel(ActionMapping mapping, ActionForm form ,
HttpServletRequest request,HttpServletResponse response) throws IOException {
ActionErrors errors = new ActionErrors();
AcExcelBusi acBusi = new AcExcelBusi();
AccidentRecordForm arForm= (AccidentRecordForm) form;
AccidentRecordBusi arBusi = new AccidentRecordBusi();
// ////查詢條件
FwUsers sessUser = (FwUsers)request.getSession().getAttribute(ConstValues.SESS_USER_MANAGE);
Map<String,Object> cisMap = arBusi.getTodoPageList(arForm,sessUser,errors);
List AcList = null;// 當頁的記錄
if (null != cisMap) {
AcList = (List) cisMap.get("list");
}
//導出excel的路徑、文件名
String uuid = UUID.create("exp");
String path = request.getSession().getServletContext().getRealPath("/") + ConstValues.EXP_PATH_EXCEL + uuid + ".xls";
acBusi.exprotAcExcel(AcList, path,request);
response.sendRedirect("stdownload.jsp?path=" + path );
}
⑸ 請問下,我想用java實現下載excel表格,思路是先在臨時文件里生成臨時excel文件,但是不知
你的意思是 導出excel表格吧。 導出的時候會創建臨時文件 但是導出後要刪除臨時文件吧
⑹ java 將頁面內容寫入excel文件中並可以將其下載到本地任意位置
java本身要生成excel文件必然是在後台做的,通過poi庫生成excel文件並製作表格。
無法直接通過網頁保存生成excel。
至於下載到本地任意位置,也是後台生成了excel文件發送到前台(瀏覽器),由用戶選擇要存在哪兒,不能直接存儲(這是web沙箱限制,不允許網頁直接訪問本地硬碟,不然你想想,如果你打開一個網頁,網頁代碼可以任意訪問你的硬碟,你還敢開網頁嗎)。
要繞過沙箱限制必須裝插件,也就是,你必須開發一個com或plugin插件,可以訪問本地硬碟,但這需要用戶手工安裝(比如flash的插件,你之所以能用網頁看flash是因為裝了它的插件,但這是你手工裝的,它不能繞過你直接給你裝,它必須詢問你行不行,你要手工點了OK,才能裝)
⑺ java 動態生產下載excel
我在Dao的實現類里,從資料庫查詢數據,並生成Excel,在頁面上點擊下載按鈕。提交到Action,在Action.里調用調用實現類。就ok啦。我用的是jxl.jar
⑻ java如何將導出的excel下載到客戶端
packagecom.mr;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.ServletOutputStream;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
/**
*利用Servlet導出Excel
*@authorCHUNBIN
*
*/
{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doPost(request,response);
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
request.setCharacterEncoding("UTF-8");//設置request的編碼方式,防止中文亂碼
StringfileName="導出數據";//設置導出的文件名稱
StringBuffersb=newStringBuffer(request.getParameter("tableInfo"));//將表格信息放入內存
StringcontentType="application/vnd.ms-excel";//定義導出文件的格式的字元串
StringrecommendedName=newString(fileName.getBytes(),"iso_8859_1");//設置文件名稱的編碼格式
response.setContentType(contentType);//設置導出文件格式
response.setHeader("Content-Disposition","attachment;filename="+recommendedName+""");//
response.resetBuffer();
//利用輸出輸入流導出文件
ServletOutputStreamsos=response.getOutputStream();
sos.write(sb.toString().getBytes());
sos.flush();
sos.close();
}
}
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
<title>導出Excel</title>
<scripttype="text/javascript">
functiontest(){
document.getElementById("tableInfo").value=document.getElementById("table").innerHTML;
}
</script>
<style>
body{font-family:宋體;font-size:11pt}
</style>
</head>
<body>
<formaction="<%=request.getContextPath()%>/servlet/ExportExcelServlet"method="post">
<spanid="table">
<tablebgcolor="#EEECF2"bordercolor="#A3B2CC"border="1"cellspacing="0">
<tr><th>學號</th><th>姓名</th><th>科目</th><th>分數</th></tr>
<tr><td>10001</td><td>趙二</td><td>高數</td><td>82</td></tr>
<tr><td>10002</td><td>張三</td><td>高數</td><td>94</td></tr>
<tr><td>10001</td><td>趙二</td><td>線數</td><td>77</td></tr>
<tr><td>10002</td><td>張三</td><td>線數</td><td>61</td></tr>
</table>
</span><br/>
<inputtype="submit"name="Excel"value="導出表格"onclick="test()"/>
<inputtype="hidden"id="tableInfo"name="tableInfo"value=""/>
</form>
</body>
</html>
以上代碼來自網路:http://jtlyuan.iteye.com/blog/1322097
⑼ java如何實現從伺服器下載已經生成好的excel文件
使用 HttpURLConnection 去下載 ,按二進制保存文件 ~~~~~~~~~