1.0.9 • Published 2 months ago

@charyliu/data2file v1.0.9

Weekly downloads
-
License
ISC
Repository
github
Last release
2 months ago

data2file

提供浏览器环境下,将数据导出为文件的能力

Install

npm install @charyliu/data2file

Types

/** 浏览器环境导出表格文件 */
export declare const downloadTableFile: (
  table: Table,
  fileName: string
) => void;

/** 表格 */
export interface Table {
  /** 单元格数据 */
  cells: {
    /** 值 */
    value: string | number;
    /** 样式 */
    style?: string;
    /** 样式class,仅支持单个 */
    className?: string;
  }[][];
  /** 配置 */
  option?: {
    /** 内部样式表 */
    styleSheet?: string;
    /** 全局单元格配置(应用到每个单元格) */
    cellConfig?: {
      /** 单元格样式 */
      style: string;
    };
    /** 行配置(应用到指定行的每个单元格) */
    rowConfig?: {
      /** 行号,从0开始 */
      index: number;
      /** 单元格样式 */
      style?: string;
      /** 样式class,仅支持单个 */
      className?: string;
    }[];
    /** 合并单元格配置 */
    mergeConfig?: {
      /** 开始单元格,r-行,c-列,行列从0开始 */
      s: { r: number; c: number };
      /** 结束单元格,r-行,c-列,行列从0开始 */
      e: { r: number; c: number };
    }[];
  };
}

使用示范

导出表格

import { downloadTableFile } from '@charyliu/data2file';

// 示例:
downloadTableFile(
  {
    cells: [
      [{ value: 'index' }, { value: 'name' }, { value: 'score' }],
      [{ value: '1' }, { value: '张三' }, { value: '33' }],
      [{ value: '2' }, { value: '李四' }, { value: '44' }],
    ],
    option: {
      styleSheet: `
        .table-head {
            background-color: #dddddd;
            font-weight: bold;
        }
      `,
      cellConfig: {
        style: `font-family: "宋体"; border: 0.5px solid black; width: 100px;`,
      },
      rowConfig: [{ index: 0, className: 'table-head' }],
      mergeConfig: [
        { s: { c: 0, r: 0 }, e: { c: 0, r: 1 } },
        { s: { c: 1, r: 0 }, e: { c: 2, r: 0 } },
      ],
    },
  },
  'test.xlsx'
);
1.0.9

2 months ago

1.0.8

3 months ago

1.0.7

3 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago