⑴ js怎麼把html導出成excel
html是樹狀結構,excel是表結構,你想要html怎麼保存在excel中?
⑵ 使用JS的方法將表格導出EXCEL時發生了「800A025E」的錯誤是怎麼回事
你檢查一下是不是表格裡面有隱藏的表格或者元素之類的,如果有的話,重新設置一下就好啦,下面我們看下JS怎麼導出excel的
創建一個html文件。接著在html文件中寫入一個table表格並且在表格如一些內容,給這個表格加個id為table,一邊後續的測試。
再接著就是看看在網上自己書寫的表格是什麼樣子的。然後就是用js寫一個函數用來將表格導出為excel文件。(函數名為AllAreaExcel)
最後就是書寫一個按鈕,用來執行書寫好的函數。在網頁上查看自己書寫的按鈕是長什麼樣子的。
點擊網頁上的按鈕後,執行成功,就會彈出一個對話框為「成功」,如下圖所示
⑶ 怎麼使用資料庫篩選js文件的數據並導出到excel
大家在使用資料庫的時候經常會用到資料庫中的數據,小編今天分享一個簡單的資料庫數據,導出的教程。經常使用資料庫的導出功能,能夠對資料庫中的數據進行很好的備份,在資料庫安全中備份也是資料庫安全必不可少的安全策略之一。讀者掌握了資料庫的導出備份,對數據的收集、分析和整理將大有益處。
開啟分步閱讀模式
工具材料:
SQLyogEnt
操作方法
01
首先我們使用SQLyogEnt工具,連接到mysql資料庫。
02
連接成功後在左側的目錄位置,找到需要的表,右鍵打開表
03
也可以直接在sql執行器中輸入:
select * from datetable name
打開這個表
04
在sql執行器的下方,結果下方,最左側的位置,如下圖,有一個小圖標,滑鼠移動上面會浮出文字「導出為....」點擊這個圖標
05
點擊後會彈出一個名為「導出為」的彈出窗口,選擇需要導出的文件格式:如csv、html、xnl等,在右側選擇導出的欄位
06
在界面的最下方有一個輸入框,框中是程序默認的一個導出的路徑,也可以點擊路徑旁的按鈕,進行自定義導出文件路徑。
07
最後點擊【導出】按鈕,點擊後會有一個小的提示窗,提示信息為「date exporet successfully」點擊【確定】按鈕,完成導出操作
08
最後就是在導出目錄中找到導出的文件,查看導出是否成功。
09
這里需要注意一下,csv格式的文件,如果用excel打開會出現亂碼,因為編碼不同,如果使用txt打開則不會有這樣的問題。
方法/步驟2
01
在方法步驟1中第二個步驟也可以選擇,備份導出,這樣也能夠導出數據,但是這種數據由於沒有進行sql的篩選,導出的是整張表的數據,讀者需要注意一下。
特別提示
讀者可以先用sql對數據表中數據進行篩選,然後再導出
⑷ JS 下載/導出 csv、excel、txt 、img等文件的方法總結
1. 調用後端介面導出文件
示例下載介面url https://gold-cdn.xitu.io/extension/0.3.9/package.crx
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調用a 標簽的click方法。
2. 前端直接導出文件到本地
2.1 將數據轉成DataURI用<a>標簽下載
<a href="DataURI" download="filename">點擊鏈接下載</a>
Data URI Scheme
Data URI Scheme是指可以在Web 頁面中包含圖片但無需任何額外的HTTP 請求的一類URI。 Data URI Scheme一般用於將經過base64編碼的數據嵌入網頁中,從而減少請求資源的鏈接數。IE8 之前的版本都不支持 data URI scheme。
DataURI的格式:
生成DataURI的方式
1. encodeURIComponent
使用這種方式,當數據過多時,URI長度容易超出瀏覽器限制。 encodeURIComponent常用來轉碼介面參數,為了避免伺服器收到不可預知的請求,對任何用戶輸入的作為URI部分的內容都需要用encodeURIComponent進行轉義。
2. URL.createObjectURL
URL.createObjectURL的參數是File對象或者Blob對象
IE10以下不支持URL.createObjectURL
2.2 windows.navigator.msSaveBlob IE10~Edge 專用
msSaveBlob 是IE10~Edge 私有方法。
2.3 execCommand
有的資料有提到IE9可以使用execCommand方法來保存數據到本地文件,但是我自己沒有驗證過,不知道是否可行。而且MDN文檔中execCommand沒有查到SaveAs命令。這塊只是做個小記錄。
js數據直接導出/下載數據到本地到方法總結
本文轉載自:https://juejin.im/post/5cd00253518825418f6f2a8c?utm_source=gold_browser_extension
⑸ 為什麼前端js把html文件中的table生成的excel文件 文件類型實際上是網頁文件(.htm)
那改下後綴類型試下
⑹ 有沒有js腳本或jquery插件實現html表格導出導入excel文件,html表格導出導入xml文件
對不起,js是不允許操作本地文件的,屬於安全問題。如果用戶允許,可以在IE瀏覽器裡面用ActionX控制項進行操作,這個是可以的。
⑺ 如何用js導出數據Excel
(function ($) {
Date.prototype.Format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小時
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
$.fn.ExportExcel = function (thread_id,tab_id, options) {
var defaults = {
height: '24px',
'line-height': '24px',
margin: '0 5px',
padding: '0 11px',
color: '#000',
background: '#02bafa',
border: '1px #26bbdb solid',
'border-radius': '3px',
/*color: #fff;*/
display: 'inline-block',
'text-decoration': 'none',
'font-size': '12px',
outline: 'none',
cursor: 'pointer'
}
var options = $.extend(defaults, options);
return this.each(function () {
var currentObject = $(this); //獲取當前對象
currentObject.css(defaults);
currentObject.onmouseover = function () {
$(this).css('cursor', 'hand');
};
currentObject.click(function () {
//From:jsfiddle.net/h42y4ke2/16/
var tab_text = '<html xmlns:x="urn:schemas-microsoft-com:office:excel">';
tab_text = tab_text + '<head><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>';
tab_text = tab_text + '<x:Name>Test Sheet</x:Name>';
tab_text = tab_text + '<x:WorksheetOptions><x:Panes></x:Panes></x:WorksheetOptions></x:ExcelWorksheet>';
tab_text = tab_text + '</x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>';
tab_text = tab_text + "<table border='1px'>";
tab_text = tab_text + $('#' + thread_id).html();
tab_text = tab_text + $('#' + tab_id).html();
tab_text = tab_text + '</table></body></html>';
var data_type = 'data:application/vnd.ms-excel';
var timeStr = new Date().Format('yyyyMMddhhmmss');
$(this).attr('href', data_type + ', ' + encodeURIComponent(tab_text));
$(this).attr('download', '日常數據報表' + timeStr + '.xls');
});
})
}
})(jQuery);
<html>
<a href="#" id="export">導出</a>
<table>
<thead id="theadDate">
<tr>
<th>姓名</th>
<th>班級</th>
<th>年齡</th>
</tr>
</thead>
<tbody id="tbodyDate">
<tr> <td>張三</td>
<td>高二</td>
<td>18</td>
</tr>
<tr>
<td>李四</td>
<td>高三</td>
<td>20</td>
</tr>
</tbody>
</table>
<script src="assets/javascripts/autotest/export-excel.js" ></script><!-- 引入js文件-->
<script type="text/javascript">
//導出 調用
$(function () {
$('#export').ExportExcel('theadDate','tbodyDate'); //tbodyDate為table的id,export為a標簽。
});
</script>
</html>
⑻ js 導出大數據到excel
完整代碼:
//導出excelfunction tableToExcel(){
var arrSor = ["sorttable10","sorttable30","sorttable60","sorttable120"]
let str = "";
for (var k = 0; k < arrSor.length; k++) {
var tab=document.getElementById(arrSor[k]);
var rows=tab.rows;
const jsonData = [];
for(var i=2;i<rows.length;i++){ //遍歷表格的行
var json = {};
for(var j=0;j<rows[i].cells.length;j++){ //遍歷每行的列
json[(i+1)+"-"+(j+1)] = rows[i].cells[j].innerHTML;
}
jsonData.push(json);
}
//列標題
let str1 = "<tr><td align='center' colspan='5'><b>最大"+arrSor[k].substring(9,arrSor[k].length)+"分鍾雨量</b></td></tr>";
let str2 = "<tr align='center'><th>站點</th><th>站名</th><th>雨量最大值</th><th>降水時段</th><th>落入最大降水時段</th></tr>";
//循環遍歷,每行加入tr標簽,每個單元格加td標簽
for(let i = 0 ; i < jsonData.length ; i++ ){
str2+='<tr>';
for(let item in jsonData[i]){
//增加\t為了不讓表格顯示科學計數法或者其他格式
var itemTem= jsonData[i][item];
if (itemTem == "暫無數據") {
str2+=`<td colspan='5' align='center'>${ itemTem + '\t'}</td>`;
}else {
str2+=`<td align='center'>${ itemTem + '\t'}</td>`;
}
}
str2+='</tr>';
}
let str3 = "<tr><td colspan='5'></td></tr>";
str += (str1 + str2 + str3);
}
let worksheet = '雨量最大值'
let uri = 'data:application/vnd.ms-excel;base64,';
//下載的表格模板數據
let template = `<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><meta charset='UTF-8'><!--[if gte mso 9]><xml>
<x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
<x:Name>${worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
<style type="text/css">
table {border: 1px solid #000000;}
table tr td b {background:#FFFFFF;color:#3D3D3D;font-size:24px;border: 1px solid #000000;}
table th {background:#AEE1FE;color:#3D3D3D;font-size:20px;border: 1px solid #000000;}
table td {background:#FFFFFF;color:#3D3D3D;font-size:20px;border: 1px solid #000000;}</style>
</head><body><table>${str}</table></body></html>`;
//下載模板
// window.location.href = uri + this.base64(template)
var link = document.createElement("a");
link.href = uri + this.base64(template);
link.download = "雨量最大值-" +new Date().format("yyyy年MM月dd日 h時")+ ".xls";
link.style = "visibility:hidden";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);}//輸出base64編碼function base64 (template) {
return window.btoa(unescape(encodeURIComponent(template))) }
解析:
遍歷取出表,順序是行從上往下,列從左往右,將數據存進數組,下面再拼接成表。
image.png
參考文章:https://blog.csdn.net/hhzzcc_/article/details/80419396
第一種方法(大量數據導出)
//導出excelfunction tableToExcel() {
var arrSor = ["sorttable10","sorttable30","sorttable60","sorttable120"]
let str = "";
for (var k = 0; k < arrSor.length; k++) {
var tab=document.getElementById(arrSor[k]);
var rows=tab.rows;
const jsonData = [];
for(var i=2;i<rows.length;i++){ //遍歷表格的行
var json = {};
for(var j=0;j<rows[i].cells.length;j++){ //遍歷每行的列
if (rows[i].cells[j].outerHTML.indexOf("rgb(255, 255, 0)") != -1) {
json["yellow"+(i+1)+"-"+(j+1)] = rows[i].cells[j].innerHTML;
}else {
json[(i+1)+"-"+(j+1)] = rows[i].cells[j].innerHTML;
}
}
jsonData.push(json);
}
//列標題
let str1 = "<tr><td colspan='5' align='center' style='background-color:#FFFFFF;font-size:24px;border: 1px solid #000000;'><b>最大"
+arrSor[k].substring(9,arrSor[k].length)+"分鍾雨量</b></td></tr>";
let str2 = "<tr>" +
"<th style='background-color:#AEE1FE;font-size:22px;border: 1px solid #000000;' align='center'>站點</th>" +
"<th style='background-color:#AEE1FE;font-size:22px;border: 1px solid #000000;' align='center'>站名</th>" +
"<th style='background-color:#AEE1FE;font-size:22px;border: 1px solid #000000;' align='center'>雨量最大值</th>" +
"<th style='background-color:#AEE1FE;font-size:22px;border: 1px solid #000000;' align='center'>降水時段</th>" +
"<th style='background-color:#AEE1FE;font-size:22px;border: 1px solid #000000;' align='center'>落入最大降水時段</th></tr>";
//循環遍歷,每行加入tr標簽,每個單元格加td標簽
for(let i = 0 ; i < jsonData.length ; i++ ){
str2+="<tr align='center'>";
for(let item in jsonData[i]){
if (item.indexOf("yellow") != -1) {//取列數等於3
//增加\t為了不讓表格顯示科學計數法或者其他格式
var itemTem= jsonData[i][item];
if (itemTem == "暫無數據") {
str2+=`<td colspan='5' style='background-color:#FFFF00;font-size:22px;border: 1px solid #000000;'> ${ itemTem + '\t'}</td>`;
}else {
str2+=`<td style='background-color:#FFFF00;font-size:22px;border: 1px solid #000000;'> ${ itemTem + '\t'}</td>`;
}
}else {
//增加\t為了不讓表格顯示科學計數法或者其他格式
var itemTem= jsonData[i][item];
if (itemTem == "暫無數據") {
str2+=`<td colspan='5' style='background-color:#FFFFFF;font-size:22px;border: 1px solid #000000;'> ${ itemTem + '\t'}</td>`;
}else {
str2+=`<td style='background-color:#FFFFFF;font-size:22px;border: 1px solid #000000;'> ${ itemTem + '\t'}</td>`;
}
}
}
str2+='</tr>';
}
let str3 = "<tr><td colspan='5' style='background-color:#FFFFFF;border: 1px solid #000000;'></td></tr>";
str += (str1 + str2 + str3);
}
var tableHtml="<html><head><meta charset='UTF-8'></head><body><table>"+str+"</body></html>"
var excelBlob = new Blob([tableHtml], {type: 'application/vnd.ms-excel'});
var fileName = "雨量最大值-"+new Date().format("yyyy年MM月dd日 h時")+".xls";
if(isIE()){
window.navigator.msSaveOrOpenBlob(excelBlob,fileName);
}else{
var oa = document.createElement('a');
oa.href = URL.createObjectURL(excelBlob);
oa.download = fileName;
document.body.appendChild(oa);
oa.click();
}} //判斷是否IE瀏覽器function isIE() {
if (!!window.ActiveXObject || "ActiveXObject" in window) {
return true;
} else {
return false;
}}
參考文章:https://blog.csdn.net/qq_34169240/article/details/84231226
⑼ js導出html中table表格為Excel表格 如何兼容各個瀏覽器
function method1() {//整個表格拷貝到EXCEL中 var curTbl = document.getElementById("hgreport1MngTb"); var oXL = new ActiveXObject("Excel.Application"); //創建AX對象excel var oWB = oXL.Workbooks.A