JS Import Export Excel - JackHu88/Comm GitHub Wiki
https://segmentfault.com/a/1190000014242385
<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);
}
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')));
}
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'}))
}
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]))
}
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();
});
});