SheetJS/js-xlsx的小demo

读取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的项目组件,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值