在jsp中點擊按鈕,在bean中把已經查出的資料,產生csv檔案,然後在ie中自動開啟

來源:互聯網
上載者:User
Quote:
這個問題可以分兩部分討論:

1、csv檔案的格式
2、通過jsp向用戶端輸出csv檔案

第一個問題我們就按簡單的來討論,可以認為是每個欄位用""包含後再用,號分割
比如:
"a","b","c"
"d","e","f"

現在我們有了csv檔案的內容,我們看看怎麼把它輸出到用戶端

一種變通的方法是把csv的內容寫到一個臨時檔案中,然後讓用戶端下載這個臨時檔案。

不過最簡單的方法是直接向用戶端輸出:以下是csv.jsp的內容
"a","b","c"
"d","e","f"

就這麼簡單,這些資訊就輸出到用戶端了。

不過現在的情況估計是不會滿足樓主需要的,因為瀏覽器自己處理了這些資訊,而不是交給excel來處理。
為了讓瀏覽器把處理權讓處理,我們需要在jsp的頭部加上一些資訊,告訴瀏覽器這些資訊不用你來操心,交給其他合適的程式(對應csv來說當然是excel咯)來處理就好了。
先告訴它“以下資訊是m$的,不是html的”:
<%@ page language="java" contentType="application/ms-excel"%>
再告訴它檔案名稱是test.csv
<%response.setHeader("Content-Disposition","filename=test.xls");%>
最後是檔案的內容:
"a","b","c"
"d","e","f"

全文就是這個樣子
<%@ page language="java" contentType="application/ms-excel"%>
<%response.setHeader("Content-Disposition","filename=test.xls");%>
"a","b","c"
"d","e","f"

樓主把abcd什麼的換成你從javaBean中查到的東西就可以了。

再訪問這個網頁,ie的話會提示你開啟或者儲存,應該是樓主想要的結果了吧。

以下是結合jstl實現的代碼:
test.jsp檔案
Code:

<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%
response.resetBuffer();
response.setContentType("application/unknow");
response.setHeader("Content-disposition",
"attachment; filename=test.csv");
%><c:forEach items="$" var="record">$,$</c:forEach>

Collection是一個request.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.