JS Import Export Excel - JackHu88/Comm GitHub Wiki

https://segmentfault.com/a/1190000014242385

Import

<script src="../SiteAssets/xlsx.core.min.js" type="text/JavaScript"></script>
//Change event to dropdownlist
$('#file').change(handleFile);

function handleFile(e) {
    var files = e.target.files;
    var f=files[0];
    var reader = new FileReader();
    var name = f.name;
    var extention=name.substring(name.lastIndexOf(".")+1,name.length);
    if(extention!= "xlsx" && extention!= "xls" ){
        layer.alert("File not valid, please upload an excel file!", {						  
          title: 'Message'
          ,btn: ['OK']
          ,skin: 'layui-layer-molv' //样式类名
        });
        return false;
    }

    reader.onload = function (e) {
        var data = e.target.result;
        var result;
        var workbook = XLSX.read(data, { type: 'binary' });                
        var sheet_name_list = workbook.SheetNames;
        sheet_name_list.forEach(function (y) {
            var sheet=workbook.Sheets[y];
            if(sheet.A1.h!="Name" || sheet.B1.h!="Tel"  ){
                return false;
            }
            //Convert the cell value to Json
            var roa = XLSX.utils.sheet_to_json(workbook.Sheets[y]);
            if (roa.length > 0) {
                result = roa;
            }
        });
        //console.log(result);
        jsonData=result;
        renderTable(result);
    };
    reader.readAsArrayBuffer(f);
}

Html table to excel

https://github.com/SheetJS/sheetjs

https://redstapler.co/sheetjs-tutorial-html-table-to-excel/

https://sheetjs.com/demos/table.html

<script src="../SiteAssets/xlsx.full.min.js" type="text/JavaScript"></script>
function doit(type, fn, dl) {
	var elt = document.getElementById('data-table');
	var wb = XLSX.utils.table_to_book(elt, {sheet:"Sheet JS"});
	return dl ?
		XLSX.write(wb, {bookType:type, bookSST:true, type: 'base64'}) :
		XLSX.writeFile(wb, fn || ('SheetJSTableExport.' + (type || 'xlsx')));
}

Export

var wopts = {
        bookType: 'xlsx',
        bookSST: false, 
        type: 'binary'
    };
var workBook = {
        SheetNames: ['Sheet1'],
        Sheets: {},
        Props: {}
    };
    
function json2Excel() {

    //1、XLSX.utils.json_to_sheet(data) 接收一个对象数组并返回一个基于对象关键字自动生成的“标题”的工作表,默认的列顺序由使用Object.keys的字段的第一次出现确定
    //2、将数据放入对象workBook的Sheets中等待输出
    workBook.Sheets['Sheet1'] = XLSX.utils.json_to_sheet(dataSource)
    
    //3、XLSX.write() 开始编写Excel表格
    //4、changeData() 将数据处理成需要输出的格式
    saveAs(new Blob([changeData(XLSX.write(workBook, wopts))], {type: 'application/octet-stream'}))
}

Export2Excel.js

https://blog.csdn.net/qq_34239734/article/details/87696963 https://www.cnblogs.com/qiu-Ann/p/7743897.html

const tHeader = ['日期', '姓名', '地址']
const filterVal = ['date', 'name', 'address']
const list = this.tableData
const data = this.formatJson(filterVal, list)
export_json_to_excel(tHeader, data, '列表excel')
formatJson(filterVal, jsonData) {
   return jsonData.map(v => filterVal.map(j => v[j]))
}

jsonExportExcel.js & mock.js

https://blog.csdn.net/jx950915/article/details/80930343

Mock.mock(
    'http://mockjs', {
        'tableData|30000':[{
            "userName": '@name', //模拟名称
            "age|1-100": 100, //模拟年龄(1-100)
            "color": "@color", //模拟色值
            "date": "@date('yyyy-MM-dd')", //模拟时间
            "url": "@url()", //模拟url
        }]

    }
);
var option={};
option.fileName = 'excel'
option.datas=[
    {
        sheetData:'',
        sheetName:'sheet',
        // sheetFilter:['userNam','age','color','date','url'],
        sheetHeader:['名字','年龄','颜色','日期','地址'],
    }
];
$.ajax({
    url: "http://mockjs.com", //请求的url地址
    dataType: "json", //返回格式为json
    async: false, //请求是否异步,默认为异步,这也是ajax重要特性
    data: {}, //参数值
    type: "GET", //请求方式
    success:function(res){
        console.log(res.tableData);
        option.datas[0].sheetData = res.tableData;  
        // if(res.tableDate == 0)  return;                                                        
    }
});
console.log(option)
var toExcel=new ExportJsonExcel(option);


$(document).ready(function(){
    $('#wwo').click(function(){
        toExcel.saveExcel();     
    });
});

⚠️ **GitHub.com Fallback** ⚠️