java導出execl並下載(java程序導出exe)

本文目錄一覽:

java : 一個excel文件以二進位的形式存在資料庫中 如何將它導出並下載到本地

從資料庫中得到Blob/Clob,然後得到InputStream,直接給response.getOutputStream() 輸出就可以

java 將頁面內容寫入excel文件中並可以將其下載到本地任意位置

java本身要生成excel文件必然是在後台做的,通過poi庫生成excel文件並製作表格。

無法直接通過網頁保存生成excel。

至於下載到本地任意位置,也是後台生成了excel文件發送到前台(瀏覽器),由用戶選擇要存在哪兒,不能直接存儲(這是web沙箱限制,不允許網頁直接訪問本地硬碟,不然你想想,如果你打開一個網頁,網頁代碼可以任意訪問你的硬碟,你還敢開網頁嗎)。

要繞過沙箱限制必須裝插件,也就是,你必須開發一個com或plugin插件,可以訪問本地硬碟,但這需要用戶手工安裝(比如flash的插件,你之所以能用網頁看flash是因為裝了它的插件,但這是你手工裝的,它不能繞過你直接給你裝,它必須詢問你行不行,你要手工點了OK,才能裝)

java如何將導出的excel下載到客戶端

package com.mr;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

 * 利用Servlet導出Excel

 * @author CHUNBIN

 *

 */

public class ExportExcelServlet extends HttpServlet {

      

       public void doGet(HttpServletRequest request, HttpServletResponse response)

                     throws ServletException, IOException {

              doPost(request, response);

       }

 

       public void doPost(HttpServletRequest request, HttpServletResponse response)

                     throws ServletException, IOException {

              request.setCharacterEncoding(“UTF-8”);//設置request的編碼方式,防止中文亂碼

              String fileName =”導出數據”;//設置導出的文件名稱

              StringBuffer sb = new StringBuffer(request.getParameter(“tableInfo”));//將表格信息放入內存

              String contentType = “application/vnd.ms-excel”;//定義導出文件的格式的字元串

              String recommendedName = new String(fileName.getBytes(),”iso_8859_1″);//設置文件名稱的編碼格式

              response.setContentType(contentType);//設置導出文件格式

              response.setHeader(“Content-Disposition”, “attachment; filename=” + recommendedName + “\””);//

              response.resetBuffer();

              //利用輸出輸入流導出文件

              ServletOutputStream sos = response.getOutputStream();

              sos.write(sb.toString().getBytes());

              sos.flush();

              sos.close();

       }

}

%@ page language=”java” contentType=”text/html; charset=UTF-8″

    pageEncoding=”UTF-8″%

!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “”

html

head

meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″

title導出Excel/title

script type=”text/javascript”

    function test(){

       document.getElementById(“tableInfo”).value=document.getElementById(“table”).innerHTML;

    }

/script

style

    body{font-family:宋體;font-size:11pt}

/style

/head

body

form action=”%=request.getContextPath()%/servlet/ExportExcelServlet” method=”post”

    span id=”table”

    table bgcolor=”#EEECF2″ bordercolor=”#A3B2CC” border=”1″ cellspacing=”0″

       trth學號/thth姓名/thth科目/thth分數/th/tr

       trtd10001/tdtd趙二/tdtd高數/tdtd82/td/tr

       trtd10002/tdtd張三/tdtd高數/tdtd94/td/tr

       trtd10001/tdtd趙二/tdtd線數/tdtd77/td/tr

       trtd10002/tdtd張三/tdtd線數/tdtd61/td/tr

    /table

    /spanbr/

    input type=”submit” name=”Excel” value=”導出表格” onclick=”test()”/

    input type=”hidden” id=”tableInfo” name=”tableInfo” value=””/

/form

/body

/html

以上代碼來自網路:

原創文章,作者:KRTSE,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/128658.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
KRTSE的頭像KRTSE
上一篇 2024-10-03 23:25
下一篇 2024-10-03 23:25

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29

發表回復

登錄後才能評論