我正在学习angular2,我想在我的项目中使用js-xlsx库。
我安装了xlsx npm install xlsx和jszip npm install jszip,并将它们添加到我的index.html中。
<script src="node_modules/xlsx/dist/xlsx.core.min.js"></script>
<script src="node_modules/jszip/dist/jszip.min.js"></script>
并添加了打字稿tsd install xlsx
我在利用webpack
但当我用它
import * as xlsx from 'xlsx';但是我得到了错误的module build failed: error: cannot resolve module 'xlsx'
发布于 2016-08-12 07:40:26
一种更简单的方法是根本不使用类型:
<script src="vendor/xlsx/dist/xlsx.core.min.js"></script>declare var XLSX: any;如果使用的是角-cli,则需要将xlsx添加到角-cli-build.js文件中。
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
'systemjs/dist/system-polyfills.js',
'systemjs/dist/system.src.js',
'zone.js/dist/**/*.+(js|js.map)',
'es6-shim/es6-shim.js',
'reflect-metadata/**/*.+(ts|js|js.map)',
'rxjs/**/*.+(js|js.map)',
'@angular/**/*.+(js|js.map)',
'moment/moment.js',
....
'xlsx/**/*.+(js|js.map)'
]})
};发布于 2017-06-26 18:21:03
以下是使用js在角2/4上从对象数组导出xlsx文件的工作组件:
import { Component, OnInit } from '@angular/core';
import { utils, write, WorkBook } from 'xlsx';
import { saveAs } from 'file-saver';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'app';
table = [
{
First: 'one',
Second: 'two',
Third: 'three',
Forth: 'four',
Fifth: 'five'
},
{
First: 'un',
Second: 'deux',
Third: 'trois',
Forth: 'quatre',
Fifth: 'cinq'
},
];
ngOnInit() {
const ws_name = 'SomeSheet';
const wb: WorkBook = { SheetNames: [], Sheets: {} };
const ws: any = utils.json_to_sheet(this.table);
wb.SheetNames.push(ws_name);
wb.Sheets[ws_name] = ws;
const wbout = write(wb, { bookType: 'xlsx', bookSST: true, type:
'binary' });
function s2ab(s) {
const buf = new ArrayBuffer(s.length);
const view = new Uint8Array(buf);
for (let i = 0; i !== s.length; ++i) {
view[i] = s.charCodeAt(i) & 0xFF;
};
return buf;
}
saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), 'exported.xlsx');
}
}您必须安装xlsx和文件保护程序才能工作。
对于从Angular2/4上的jsons数组导出xlsx文件的工作示例:
https://github.com/bogdancar/xlsx-json-to-xlsx-demo-Angular2
发布于 2017-02-14 08:54:07
试用特克斯,使用起来很简单
npm install --save ts-xlsx
然后安装打字机
npm install --save @types/xlsx
/* You can use as namespace: */
import * as XLSX from 'ts-xlsx';
let wb: XLSX.IWorkBook = XLSX.read(...)
/* Or straight forward import */
import { read, IWorkBook } from 'ts-xlsx';
let wb: IWorkBook = read(...)https://stackoverflow.com/questions/38804454
复制相似问题