我在將數據導出到Excel表單時遇到問題,這是因爲我的團隊中的其他開發人員所做的一些代碼。所以主要的問題是使用JSP頁面將數據導出到Excel或.cvs,但不使用任何HTML代碼。 任何建議也可以幫助我探索在我的發展舞臺上。感謝您的努力。沒有用於將數據導出到Excel的HTML代碼的JSP頁面
8
A
回答
16
爲此更好地使用Servlet。原始Java代碼不屬於JSP文件,這僅僅是maintenance trouble的配方。
首先,創建一個簡單的Java工具類這需要例如List<List<T>>
或List<Data>
(其中Data
表示一行)表示CSV內容和OutputStream
方法參數和寫入邏輯它執行數據複製任務。
一旦你得到這個工作,創建一個Servlet類,它將一些CSV文件標識符作爲請求參數或pathinfo(我建議使用pathinfo作爲由雷德蒙德團隊開發的某個webbrowser,否則將檢測到filename/mimetype失敗)使用標識符從某處獲取List<List<T>>
或List<Data>
,並沿着一組正確的響應標頭將其寫入HttpServletResponse
的OutputStream
。
這裏有一個基本的開球例如:
public static <T> void writeCsv (List<List<T>> csv, char separator, OutputStream output) throws IOException {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, "UTF-8"));
for (List<T> row : csv) {
for (Iterator<T> iter = row.iterator(); iter.hasNext();) {
String field = String.valueOf(iter.next()).replace("\"", "\"\"");
if (field.indexOf(separator) > -1 || field.indexOf('"') > -1) {
field = '"' + field + '"';
}
writer.append(field);
if (iter.hasNext()) {
writer.append(separator);
}
}
writer.newLine();
}
writer.flush();
}
這裏有一個例子,你如何使用它:
public static void main(String[] args) throws IOException {
List<List<String>> csv = new ArrayList<List<String>>();
csv.add(Arrays.asList("field1", "field2", "field3"));
csv.add(Arrays.asList("field1,", "field2", "fie\"ld3"));
csv.add(Arrays.asList("\"field1\"", ",field2,", ",\",\",\""));
writeCsv(csv, ';', System.out);
}
和一個servlet中,你基本上可以做到:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String filename = request.getPathInfo();
List<List<Object>> csv = someDAO().list();
response.setHeader("content-type", "text/csv");
response.setHeader("content-disposition", "attachment;filename=\"" + filename + "\"");
writeCsv(csv, ',', response.getOutputStream());
}
地圖這個servlet在/csv/*
之類的東西上,並且像那樣調用它。這基本上都是。 pathinfo中的文件名非常重要,因爲Redmond團隊開發的某個Web瀏覽器會忽略Content-Disposition
標頭的filename
部分,而是使用URL的最後一個路徑部分。
相關問題
- 1. /導出到Excel的jqGrid數據春JSP
- 2. 有沒有辦法將類導入到jsp頁面(jsp + eclipse + java)
- 3. Struts2將JSP導出到Excel
- 4. 將導出數據從JSP頁面壓縮到多個Excel表格在JAVA/JSP中同時(導出+ ZIP)
- 5. 將HTML表格數據導出到Excel
- 6. 如何從jsp頁面導出圖表到excel頁面
- 7. 將Gridview導出到Excel,但整個aspx頁面導出代替
- 8. 將JSP數據導出爲Excel圖像
- 9. 將JSP頁面轉換爲使用Java代碼的靜態HTML
- 10. 將數據導出到Excel中的excel
- 11. 將數據從表格導出到JSP中的Excel中
- 12. 使用java/javascript代碼將html表導出到Excel中
- 13. 將數據導出到Excel
- 14. 將數據導出到excel
- 15. 將數據導出到Excel
- 16. 將頁面內容導出到Excel
- 17. 如何使用html代碼將html頁面轉換爲excel
- 18. HTML代碼流出頁面?
- 19. HTML代碼流出頁面?
- 20. WAMP PHP頁面沒有收到來自C#代碼的數據
- 21. 如何將頁面上顯示的數據導出爲pdf/excel?
- 22. 如何將JSP頁面的一部分導出到Excel工作表
- 23. 將數據導出到Joomla的Excel
- 24. 將數據導出到Webmatrix中的Excel
- 25. 將數據導出到asp.net中的excel
- 26. 用於將數據從行轉置到列的Excel VBA代碼
- 27. 導出DataGridView到HTML頁面
- 28. 導出HTML數據表到Excel
- 29. 將顯示標籤導出爲Excel格式的HTML頁面
- 30. 在jsp頁面顯示Excel數據
絕對是一個servlet的工作。 +1 – ChadNC 2009-11-27 16:33:18
我試過類似這樣的解決方案,但我通過https獲取文件時遇到了問題。 它爲什麼會通過https失敗? – 2009-12-23 10:49:59
問題在於別的地方。通過按右上方的「Ask Question」按鈕詢問您自己的問題,並詳細說明問題。 – BalusC 2009-12-23 12:23:36