fengxiang
2018-07-11 12b04f145bae740e1971036b1e2dfc1bc224d17b
src/app/routes/delon/xlsx/xlsx.component.ts
New file
@@ -0,0 +1,50 @@
import { Component, OnInit } from '@angular/core';
import { XlsxService, SimpleTableColumn } from '@delon/abc';
@Component({
  selector: 'app-xlsx',
  templateUrl: './xlsx.component.html',
})
export class XlsxComponent {
  constructor(private xlsx: XlsxService) {}
  data: any;
  url() {
    this.xlsx.import(`./assets/tmp/demo.xlsx`).then(res => (this.data = res));
  }
  change(e: Event) {
    const file = (e.target as HTMLInputElement).files[0];
    this.xlsx.import(file).then(res => (this.data = res));
  }
  users: any[] = Array(100)
    .fill({})
    .map((item: any, idx: number) => {
      return {
        id: idx + 1,
        name: `name ${idx + 1}`,
        age: Math.ceil(Math.random() * 10) + 20,
      };
    });
  columns: SimpleTableColumn[] = [
    { title: '编号', index: 'id', type: 'checkbox' },
    { title: '姓名', index: 'name' },
    { title: '年龄', index: 'age' },
  ];
  download() {
    const data = [this.columns.map(i => i.title)];
    this.users.forEach(i =>
      data.push(this.columns.map(c => i[c.index as string])),
    );
    this.xlsx.export({
      sheets: [
        {
          data: data,
          name: 'sheet name',
        },
      ],
    });
  }
}