做爰高潮a片〈毛片〉,尤物av天堂一区二区在线观看,一本久久A久久精品VR综合,添女人荫蒂全部过程av

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

如何使用s-xlsx實現Excel文件導入和導出(上)

來源:懂視網 責編:小采 時間:2020-11-27 20:01:24
文檔

如何使用s-xlsx實現Excel文件導入和導出(上)

如何使用s-xlsx實現Excel文件導入和導出(上):這次給大家帶來如何使用s-xlsx實現Excel文件導入和導出,使用s-xlsx實現Excel文件導入和導出的注意事項有哪些,下面就是實戰案例,一起來看一下。導入功能實現下載js-xlsx到dist復制出xlsx.full.min.js引入到頁面中然后通過FileReader對象讀取文件
推薦度:
導讀如何使用s-xlsx實現Excel文件導入和導出(上):這次給大家帶來如何使用s-xlsx實現Excel文件導入和導出,使用s-xlsx實現Excel文件導入和導出的注意事項有哪些,下面就是實戰案例,一起來看一下。導入功能實現下載js-xlsx到dist復制出xlsx.full.min.js引入到頁面中然后通過FileReader對象讀取文件

這次給大家帶來如何使用s-xlsx實現Excel文件導入和導出,使用s-xlsx實現Excel文件導入和導出的注意事項有哪些,下面就是實戰案例,一起來看一下。

導入功能實現

下載js-xlsx到dist復制出xlsx.full.min.js引入到頁面中
然后通過FileReader對象讀取文件利用js-xlsx轉成json數據
代碼實現(==>示例<==)

<!DOCTYPE html><html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <script src="http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js"></script>
 </head>
 <body>
 <input type="file"onchange="importf(this)" />
 <p id="demo"></p>
 <script>
 /*
 FileReader共有4種讀取方法:
 1.readAsArrayBuffer(file):將文件讀取為ArrayBuffer。
 2.readAsBinaryString(file):將文件讀取為二進制字符串
 3.readAsDataURL(file):將文件讀取為Data URL
 4.readAsText(file, [encoding]):將文件讀取為文本,encoding缺省值為'UTF-8'
 */
 var wb;//讀取完成的數據
 var rABS = false; //是否將文件讀取為二進制字符串
 function importf(obj) {//導入
 if(!obj.files) { return;
 } var f = obj.files[0]; var reader = new FileReader();
 reader.onload = function(e) { var data = e.target.result; if(rABS) {
 wb = XLSX.read(btoa(fixdata(data)), {//手動轉化
 type: 'base64'
 });
 } else {
 wb = XLSX.read(data, { type: 'binary'
 });
 } //wb.SheetNames[0]是獲取Sheets中第一個Sheet的名字
 //wb.Sheets[Sheet名]獲取第一個Sheet的數據
 document.getElementById("demo").innerHTML= JSON.stringify( XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]) );
 }; if(rABS) {
 reader.readAsArrayBuffer(f);
 } else {
 reader.readAsBinaryString(f);
 }
 } function fixdata(data) { //文件流轉BinaryString
 var o = "",
 l = 0,
 w = 10240; for(; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
 o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w))); return o;
 } </script>
 </body></html>

2.導出功能的實現

同樣引入js-xlsx
代碼實現(==>示例<==)

<!DOCTYPE html><html><head>
 <meta charset="UTF-8">
 <title></title>
 <script src="http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js"></script></head><body>
 <button onclick="downloadExl(jsono)">導出</button>
 <!--
 以下a標簽不需要內容
 -->
 <a href="" download="這里是下載的文件名.xlsx" id="hf"></a>
 <script>
 var jsono = [{ //測試數據
 "保質期臨期預警(天)": "adventLifecycle", "商品標題": "title", "建議零售價": "defaultPrice", "高(cm)": "height", "商品描述": "Description", "保質期禁售(天)": "lockupLifecycle", "商品名稱": "skuName", "商品簡介": "brief", "寬(cm)": "width", "阿達": "asdz", "貨號": "goodsNo", "商品條碼": "skuNo", "商品品牌": "brand", "凈容積(cm^3)": "netVolume", "是否保質期管理": "isShelfLifeMgmt", "是否串號管理": "isSNMgmt", "商品顏色": "color", "尺碼": "size", "是否批次管理": "isBatchMgmt", "商品編號": "skuCode", "商品簡稱": "shortName", "毛重(g)": "grossWeight", "長(cm)": "length", "英文名稱": "englishName", "凈重(g)": "netWeight", "商品分類": "categoryId", "這里超過了": 1111.0, "保質期(天)": "expDate"
 }]; var tmpDown; //導出的二進制對象
 function downloadExl(json, type) { var tmpdata = json[0];
 json.unshift({}); var keyMap = []; //獲取keys
 //keyMap =Object.keys(json[0]);
 for (var k in tmpdata) {
 keyMap.push(k);
 json[0][k] = k;
 } var tmpdata = [];//用來保存轉換好的json 
 json.map((v, i) => keyMap.map((k, j) => Object.assign({}, { v: v[k], position: (j > 25 ? getCharCol(j) : String.fromCharCode(65 + j)) + (i + 1)
 }))).reduce((prev, next) => prev.concat(next)).forEach((v, i) => tmpdata[v.position] = { v: v.v
 }); var outputPos = Object.keys(tmpdata); //設置區域,比如表格從A1到D10
 var tmpWB = { SheetNames: ['mySheet'], //保存的表標題
 Sheets: { 'mySheet': Object.assign({},
 tmpdata, //內容
 { '!ref': outputPos[0] + ':' + outputPos[outputPos.length - 1] //設置填充區域
 })
 }
 };
 tmpDown = new Blob([s2ab(XLSX.write(tmpWB, 
 {bookType: (type == undefined ? 'xlsx':type),bookSST: false, type: 'binary'}//這里的數據是用來定義導出的格式類型
 ))], { type: ""
 }); //創建二進制對象寫入轉換好的字節流
 var href = URL.createObjectURL(tmpDown); //創建對象超鏈接
 document.getElementById("hf").href = href; //綁定a標簽
 document.getElementById("hf").click(); //模擬點擊實現下載
 setTimeout(function() { //延時釋放
 URL.revokeObjectURL(tmpDown); //用URL.revokeObjectURL()來釋放這個object URL
 }, 100);
 } function s2ab(s) { //字符串轉字符流
 var buf = new ArrayBuffer(s.length); var view = new Uint8Array(buf); for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; return buf;
 } // 將指定的自然數轉換為26進制表示。映射關系:[0-25] -> [A-Z]。
 function getCharCol(n) { let temCol = '',
 s = '',
 m = 0
 while (n > 0) {
 m = n % 26 + 1
 s = String.fromCharCode(m + 64) + s
 n = (n - m) / 26
 } return s
 } </script></body></html>

3.使用Python將excel轉成Json創建測試數據

代碼

import sysimport xlrdimport json 
file =sys.argv[1] 
data = xlrd.open_workbook(file)
table=data.sheets()[0]def haveNoIndex(table):
 returnData=[]
 keyMap=table.row_values(0) 
 for i in range(table.nrows):#row
 tmpmp={}
 tmpInd=0
 for k in table.row_values(i): 
 tmpmp[keyMap[tmpInd]]=k
 tmpInd=tmpInd+1 
 returnData.append(tmpmp); return json.dumps(returnData,ensure_ascii=False,indent=2)
returnJson= haveNoIndex(table) 
fp = open(file+".json","w",encoding='utf-8')
fp.write(returnJson)
fp.close()

導出示例的測試數據已經含有表頭了如果沒有表頭可以直接將json中的遍歷第一條數據的key創建一個value=key({key:key})插入到json第一條就可以了

相信看了本文案例你已經掌握了方法,更多精彩請關注Gxl網其它相關文章!

相關閱讀:

用nodejs做簡介的網站

Vue如何添加element UI的組件

如何在移動端做出1px邊框的效果

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

如何使用s-xlsx實現Excel文件導入和導出(上)

如何使用s-xlsx實現Excel文件導入和導出(上):這次給大家帶來如何使用s-xlsx實現Excel文件導入和導出,使用s-xlsx實現Excel文件導入和導出的注意事項有哪些,下面就是實戰案例,一起來看一下。導入功能實現下載js-xlsx到dist復制出xlsx.full.min.js引入到頁面中然后通過FileReader對象讀取文件
推薦度:
標簽: 文件 利用 導出
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 海南省| 洛扎县| 互助| 通辽市| 阳新县| 修水县| 新乡县| 措美县| 凯里市| 林甸县| 淮北市| 玉林市| 柳林县| 通山县| 佛冈县| 宜城市| 内黄县| 当涂县| 光山县| 湖北省| 景德镇市| 鹰潭市| 闻喜县| 荔浦县| 北海市| 伊春市| 广河县| 肇庆市| 宁都县| 临夏市| 蕉岭县| 平度市| 五家渠市| 盐津县| 开阳县| 名山县| 华宁县| 磐石市| 武宁县| 隆德县| 介休市|