excel-build

excel-build is a library for creating excel files in the browser

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
excel-build
1.1.22 months ago6 months agoMinified + gzip package size for excel-build in KB

Readme

excel-build
npm npm
Installation
npm install excel-build
Usage

FileBuilder

import { FileBuilder } from 'excel-build';

const excelFile = new FileBuilder('FILE_NAME');

excelFile.addSheet(sheet1).addSheet(sheet2).download();

API

| Method | Description | Type | Parameter | Returns | | :--------: | :----------------------------------: | :--------: | :------------: | :-----------: | | addSheet | Add a sheet to the Excel file. | function | SheetBuilder | FileBuilder | | download | Download the Excel file you created. | function | - | void |

SheetBuilder

import { SheetBuilder } from 'excel-build';

const data = [
  ['1', 'soohyun', 'sasha1107@naver.com', '01012345678', 'FE'],
  ['2', 'sasha', 'sasha981107@gmail.com', '01087654321', 'BE'],
];

const sheet1 = new SheetBuilder('sheet_1');
const sheet2 = new SheetBuilder('sheet_2')
  .appendThead(['id', 'name', 'email', 'phone', 'department'])
  .appendTbody(data)
  .mergeCell([0, 3], [4, 3]);

API

| Method | Description | Type | Parameter | Returns | | :---------------: | :--------------------------------------------------------------------------------------: | :--------: | :----------------------------------------------------------: | :------------: | | appendThead | Adds a header row to the table. | function | (theadArr: string[], option: any) | SheetBuilder | | appendRow | Adds a row to the table. | function | (tRowArr: string\|number\|boolean\|Date[], option: any) | SheetBuilder | | appendTbody | Adds a row in array to the table. | function | (tbodyArr: string\|number\|boolean\|Date[][], option: any) | SheetBuilder | | appendCustomRow | Add custom style rows to the table. | function | (row: string\|number\|boolean\|Date[], option: any) | SheetBuilder | | mergeCell | Merge the cells with the starting cell x0, y0 and the ending cell x1, y1 as factors. | function | (start: [number, number], end: [number, number]) | SheetBuilder | | getWorkSheet | Returns the sheet you created. | function | - | SheetBuilder | | getSheetName | Returns the name of the sheet you created. | function | - | string | | setColumnWidth | Set the width for a specific column on the sheet. | function | (columnNumber: number, width: number) | SheetBuilder |

CellBuilder

const data = ['1', 'soohyun', 'sasha1107@naver.com', '01012345678', 'FE'];

sheet1.appendCustomRow(
  data.map((item) =>
    new CellBuilder(item)
      .setFontSize(20)
      .setFontColor('#FFFFFF')
      .setBackgroundColor('#555555')
      .setFontItalic()
      .build()
  )
);

API

| Method | Description | Type | Parameter | Returns | | :------------------------: | :-----------------------------------------------------------------: | :--------: | :---------------------------: | :-----------: | | setAlignMentVertical | Sets the vertical alignment of cells. | function | center \| top \| bottom | CellBuilder | | setAlignMentHorizontal | Sets the horizontal alignment of cells. | function | center \| left \| right | CellBuilder | | setAlignMentWrapText | Allow text wrapping. | function | - | CellBuilder | | setAlignMentTextRotation | 180 is rotated down 180 degrees, 255 is special, aligned vertically | function | 0 to 180, or 255 | CellBuilder | | setBorder | Sets the border style for cells. | function | null \| BorderStyleType | CellBuilder | | setBackgroundColor | Sets the background color of the cell. | function | string(HEX) | CellBuilder | | setFontColor | Set the color of the font. | function | string(HEX) | CellBuilder | | setFontSize | Set the font size. | function | number | CellBuilder | | setFontBold | Set the font in bold. | function | - | CellBuilder | | setFontItalic | Set the font to italic. | function | - | CellBuilder | | setFontStrike | Set strikethrough in the font. | function | - | CellBuilder | | setFontUnderline | Underline the font. | function | - | CellBuilder | | build | Build a cell. | function | - | CellBuilder |
BorderStyleType
type BorderType =
  | 'dashDotDot'
  | 'dashDot'
  | 'dashed'
  | 'dotted'
  | 'hair'
  | 'mediumDashDotDot'
  | 'mediumDashDot'
  | 'mediumDashed'
  | 'medium'
  | 'slantDashDot'
  | 'thick'
  | 'thin';

type BorderStyleType = {
  top?: { style: BorderType; color: ColorType };
  bottom?: { style: BorderType; color: ColorType };
  left?: { style: BorderType; color: ColorType };
  right?: { style: BorderType; color: ColorType };
  diagonal?: {
    style: BorderType;
    color: ColorType;
    diagonalUp: boolean;
    diagonalDown: boolean;
  };
};


ColorType
type ColorType = {
  rgb?: string;
  theme?: number;
  tint?: number;
};

🙏 Thanks

This project is a fork of SheetJS/sheetjs combined with code from sheetjs-style (by ShanaMaid) and sheetjs-style-v2 (by Raul Gonzalez) and xlsx-js-style (by gitbrent).
All projects are under the Apache 2.0 License