js實現匯入匯出Excel(結合js xlsx)

2021-09-03 08:46:17 字數 2201 閱讀 4365

本文是單純用前端實現匯入匯出excel的功能。

說明:1、匯入要求匯入的資料是文字格式。

2、匯出是匯出json資料到excel檔案

**如下:

1、通過以下命令列安裝js-xlsx,在dist中複製出xlsx.full.min.js引入到頁面中 。

cnpm install xlsx
2、封裝的js**如下:

/* 讀取部分的操作start */

/*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; //是否將檔案讀取為二進位制字串

//檔案流轉binarystring

function fixdata(data)

//匯入

function importfun(obj,callback)

var f = obj.files[0];

var reader = new filereader();

reader.onload = function(e) );

} else );

}是獲取sheets中第乙個sheet的名字

名]獲取第乙個sheet的資料

callback(xlsx.utils.sheet_to_json(wb.sheets[wb.sheetnames[0]]))

};if(rabs) else

}/* 讀取部分的操作end */

/* 匯出部分的操作start */

var tmpdown; //匯出的二進位制物件

function downloadexl(obj,json,callback,type) );

var keymap = ; //獲取keys

//keymap =object.keys(json[0]);

for (var k in tmpdata)

var tmpdata = ;//用來儲存轉換好的json

json.map((v, i) => keymap.map((k, j) => object.assign({}, ))).reduce((prev, next) => prev.concat(next)).foreach((v, i) => tmpdata[v.position] = );

var outputpos = object.keys(tmpdata); //設定區域,比如**從a1到d10

var tmpwb = ,

tmpdata, //內容)}

};tmpdown = new blob([s2ab(xlsx.write(tmpwb,

//這裡的資料是用來定義匯出的格式型別

))], ); //建立二進位制物件寫入轉換好的位元組流

var href = url.createobjecturl(tmpdown); //建立物件超連結

obj.dom.href = href; //繫結a標籤

callback();

settimeout(function() , 100);

}//字串轉字元流

function s2ab(s)

// 將指定的自然數轉換為26進製表示。對映關係:[0-25] -> [a-z]。

function getcharcol(n)

return s

}/* 匯出部分的操作end */

/* 這是匯入匯出公用的方法 */

// 將最後返回的資料按照自己定義的字段進行格式化

function formatfun(res,obj,callback) {

var result = ;// 將返回的結果經過格式化後返回

for(var i=0;i3、html**如下:

匯出

4、匯入的excel的資料格式如下圖:

JAVA實現Excel匯入匯出

建立工程匯入jar包 jxl建立excel檔案 author c public class jxlexpexcel 建立excel檔案 file file new file jxl test.xls try 追加資料 for int i 1 i 10 i 寫入資料 workbook.write wo...

NPOI實現 Excel匯入匯出

實現物件集合寫入到excel和excel資料讀出到物件集合的功能 自定義列屬性 public class columnattribute attribute public columnattribute string columnname 時間格式 public class datetimeform...

Vue結合後台詳解匯入匯出Excel問題

vue完整前後臺專案介紹 最近vue專案中用到了匯入匯出功能,在網上搜尋了一番之後,決定採用blob方式,這也是大家推薦的一種的方式,特此做下記錄。匯出excel功能 這裡不談別人怎麼實現的,我是從後台生成了excel流檔案返回給前端的。下面具體看一下後台的 批量匯出使用者 使用者列表 respon...