读取json数据时,可以使用items.map(value =>{*});
其使用效果与items.forEach(object =>{ **})效果相同,
都可以对数组中的元素实现遍历,
如果元素是对象,可以使用key值取对应的元素值如value[key:string]
js/sheet xlsx的用法
FileReader:文件解读器
IWorkBook: 工作表对象
一般情况下excel工作簿中会有多个工作表,
因而需要嵌套使用“IWorkBookSheet”
所以一个设立一个工作簿对象workSheets: {[sheet: string]: IWokeSheet}
IWorkBook相当于IWorkSheet的集合
下述代码用于导入xlsx文件
脚注
生成一个脚注1.
代码块
import { Component, OnInit,ViewChild } from ‘@angular/core’;
import {read, utils, IWorkBook, IWorkSheet} from “xlsx”;
@Component({
selector: ‘app-import’,
templateUrl: ‘./import.component.html’,
styleUrls: [‘./import.component.css’]
})
export class ImportComponent implements OnInit {
//文本解读器
reader: FileReader = new FileReader();
//工作表
workBook: IWorkBook = null;
//工作簿名称
workSheetNames: string[] = [];
//
workSheets: { [sheet: string]: IWorkSheet } = null;
currentWorkSheet: IWorkSheet = null;
currentData: any[]=[];
constructor() {
this.reader.onload = this.setReaderOnloadHandler();
}
//导入一个excel文件
readFile(e: any): void {
e.stopPropagation();
e.preventDefault();
this.workBook = null;
this.workSheetNames = [];
this.workSheets = null;
this.currentWorkSheet = null;
this.currentData = [];
let files = e.target.files;
//取第一个文件
let file = files[0];
this.reader.readAsBinaryString(file);
}
private setReaderOnloadHandler() {
return () => {
//读取工作表数据
let data = this.reader.result;
try {
this.workBook = read(data, {type: ‘binary’});
} catch (err) {
console.log(‘文件格式错误:’, err);
return;
}
this.workSheetNames = this.workBook.SheetNames;
// console.log(this.workBook.SheetNames);
this.workSheets = this.workBook.Sheets;
}
}
loadSheetData(sheetName: string): void {
this.currentWorkSheet = this.workSheets[sheetName];
this.currentData = utils.sheet_to_json(this.currentWorkSheet, {header: 0});
this.currentData.map(value =>{
console.log(value)});
this.currentData.forEach(
object =>
{
console.log(object[‘Color’]);
}
);
}
ngOnInit() {
}
}
本段代码为angular2的项目组件,