前端拿到服務端數(shù)據(jù)生成 word 、excel 、pdf ,并導出或預覽,此處為導出word 參考地址
創(chuàng)新互聯(lián)長期為上千客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為豐潤企業(yè)提供專業(yè)的成都網(wǎng)站設計、成都網(wǎng)站制作,豐潤網(wǎng)站改版等技術服務。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
3. jszip
JSZip 是一個用于創(chuàng)建、讀取和編輯 .zip 文件的 javascript 庫,具有可愛而簡單的 API。
4. FileSaver
它可以利用新流的強大功能將數(shù)據(jù)異步直接保存到硬盤驅動器應用程序接口。這將支持進度、取消和知道何時完成寫作
FileSaver.js 是在客戶端保存文件的解決方案,非常適合在客戶端生成文件的 Web 應用程序
saveAs()
地址)
方式一,用 export default 統(tǒng)一導出
方式二,給每一個要導出的變量和函數(shù)加上 export 關鍵字
1. 調(diào)用后端接口導出文件
示例下載接口url
1.1 window.open(url)
會打開一個新窗口,開始下載后會自動關閉新窗口。Safair 下載后沒有關閉新窗口。
Chrome、IE、Safair支持,貌似火狐不支持
1.2 window.location=url
在當前窗口下載
Chrome、Safair支持
1.3 iframe
在HTML中,iframe 的屬性用src,但在JS中,只有部份瀏覽器支持修改src(讀是沒問題),真正通用的是要修改對應框架的href值。
1.4 a href="url" download="filename"點擊鏈接下載/a
HTML5中給a標簽增加了一個download屬性,只要有這個屬性,點擊這個鏈接時瀏覽器就不在打開鏈接指向的文件,而是改為下載,目前只有chrome、firefox、opera、Edge支持。常用此方法點擊下載圖片。
IE既不支持a標簽的download屬性也不允許js調(diào)用a 標簽的click方法。
2. 前端直接導出文件到本地
2.1 將數(shù)據(jù)轉成DataURI用a標簽下載
a href="DataURI" download="filename"點擊鏈接下載/a
Data URI Scheme
Data URI Scheme是指可以在Web 頁面中包含圖片但無需任何額外的HTTP 請求的一類URI。 Data URI Scheme一般用于將經(jīng)過base64編碼的數(shù)據(jù)嵌入網(wǎng)頁中,從而減少請求資源的鏈接數(shù)。IE8 之前的版本都不支持 data URI scheme。
DataURI的格式:
生成DataURI的方式
1. encodeURIComponent
使用這種方式,當數(shù)據(jù)過多時,URI長度容易超出瀏覽器限制。 encodeURIComponent常用來轉碼接口參數(shù),為了避免服務器收到不可預知的請求,對任何用戶輸入的作為URI部分的內(nèi)容都需要用encodeURIComponent進行轉義。
2. URL.createObjectURL
URL.createObjectURL的參數(shù)是File對象或者Blob對象
IE10以下不支持URL.createObjectURL
2.2 windows.navigator.msSaveBlob IE10~Edge 專用
msSaveBlob 是IE10~Edge 私有方法。
2.3 execCommand
有的資料有提到IE9可以使用execCommand方法來保存數(shù)據(jù)到本地文件,但是我自己沒有驗證過,不知道是否可行。而且MDN文檔中execCommand沒有查到SaveAs命令。這塊只是做個小記錄。
js數(shù)據(jù)直接導出/下載數(shù)據(jù)到本地到方法總結
本文轉載自:
具體方法如下:
HTML
HEAD
titleWEB頁面導出為EXCEL文檔的方法
/title
/HEAD
body
BR
table id = "PrintA" width="100%" border="1" cellspacing="0"
cellpadding="0" bgcolor = "#61FF13"
TR style="text-align : center;"
TD單元格A/TD
TD單元格A/TD
TD單元格A/TD
TD單元格A/TD
/TR
TR
TD colSpan=4 style="text-align : center;"
font color="BLUE" face="Verdana"單元格合并行A/FONT
/TD
/TR
/TABLE
BR
table id="PrintB" width="100%" border="1" cellspacing="0"
cellpadding="0"
TR style="text-align : center;"
TD單元格B/TD
TD單元格B/TD
TD單元格B/TD
TD單元格B/TD
/TR
TR
TD colSpan=4 style="text-align : center;"單元格合并行B/TD
/TR
/TABLE
brbrbr
input type="button" onclick="javascript:AllAreaWord();"
value="導出頁面指定區(qū)域內(nèi)容到Word"
input type="button" onclick="javascript:AllAreaExcel();"
value="導出頁面指定區(qū)域內(nèi)容到Excel"
input type="button" onclick="javascript:CellAreaExcel();"
value="導出表單單元格內(nèi)容到Excel"
SCRIPT LANGUAGE="javascript"
//指定頁面區(qū)域內(nèi)容導入Excel
function AllAreaExcel()
{
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var sel=document.body.createTextRange();
sel.moveToElementText(PrintA);
sel.select();
sel.execCommand("Copy");
oSheet.Paste();
oXL.Visible = true;
}
//指定頁面區(qū)域“單元格”內(nèi)容導入Excel
function CellAreaExcel()
{
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var Lenr = PrintA.rows.length;
for (i=0;iLenr;i++)
{
var Lenc = PrintA.rows(i).cells.length;
for (j=0;jLenc;j++)
{
oSheet.Cells(i+1,j+1).value = PrintA.rows(i).cells(j).innerText;
}
}
oXL.Visible = true;
}
//指定頁面區(qū)域內(nèi)容導入Word
function AllAreaWord()
{
var oWD = new ActiveXObject("Word.Application");
var oDC = oWD.Documents.Add("",0,1);
var oRange =oDC.Range(0,1);
var sel = document.body.createTextRange();
sel.moveToElementText(PrintA);
sel.select();
sel.execCommand("Copy");
oRange.Paste();
oWD.Application.Visible = true;
//window.close();
}
/SCRIPT
/body
/html
你好,可以加個提交按鈕,功能是提交表格(table的HTML文本)到一個新頁面mytable.php,新頁面的功能為:
http header為excel,這個時候就直接下載或者是用本地的excel打開了;
新頁面直接輸出獲取到的提交內(nèi)容HTML文本;
代碼如下:
?
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=table.xls");
echo?$_REQUEST['html'];
?
當前名稱:導出JavaScript,導出單位
網(wǎng)頁網(wǎng)址:http://aaarwkj.com/article2/dssjoic.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、網(wǎng)站排名、外貿(mào)網(wǎng)站建設、網(wǎng)站導航、服務器托管、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)