ShanaMaid / sheetjs-style

support set cell style for sheetjs! 😈
Apache License 2.0
105 stars 36 forks source link
cell-style excel excel-export js-xlsx sheetjs sheetjs-style style xlsx xlsx-style

Sheetjs-style

version license downloads downloads-month

support set cell style for sheetjs!

API is the same as sheetjs!

install

npm install sheetjs-style

How to Use?

Please read SheetJs Documents!

How to set cell Style?

for example:

const XLSX = require('sheetjs-style');
const wb = XLSX.utils.book_new();
const ws = XLSX.utils.json_to_sheet([{
  0: 0,
  1: 1,
  2: 2
}], {
  header: ['0', '1', '2'],
});

ws["A1"].s = { // set the style for target cell
  font: {
    name: '宋体',
    sz: 24,
    bold: true,
    color: {
      rgb: "FFFFAA00"
    }
  },
};

XLSX.utils.book_append_sheet(wb, ws, 'sheet1'); // add worksheet to workbook

XLSX.writeFile(wb, 'test.xlsx'); // write workbook

单元格设置样式

Cell Styles

Cell styles are specified by a style object that roughly parallels the OpenXML structure. The style object has five top-level attributes: fill, font, numFmt, alignment, and border.

Style Attribute Sub Attributes Values
fill patternType "solid" or "none"
fgColor COLOR_SPEC
bgColor COLOR_SPEC
font name "Calibri" // default
sz "11" // font size in points
color COLOR_SPEC
bold true or false
underline true or false
italic true or false
strike true or false
outline true or false
shadow true or false
vertAlign true or false
numFmt "0" // integer index to built in formats, see StyleBuilder.SSF property
"0.00%" // string matching a built-in format, see StyleBuilder.SSF
"0.0%" // string specifying a custom format
"0.00%;\\(0.00%\\);\\-;@" // string specifying a custom format, escaping special characters
"m/dd/yy" // string a date format using Excel's format notation
alignment vertical "bottom" or "center" or "top"
horizontal "left" or "center" or "right"
wrapText true or false
readingOrder 2 // for right-to-left
textRotation Number from 0 to 180 or 255 (default is 0)
90 is rotated up 90 degrees
45 is rotated up 45 degrees
135 is rotated down 45 degrees
180 is rotated down 180 degrees
255 is special, aligned vertically
border top { style: BORDER_STYLE, color: COLOR_SPEC }
bottom { style: BORDER_STYLE, color: COLOR_SPEC }
left { style: BORDER_STYLE, color: COLOR_SPEC }
right { style: BORDER_STYLE, color: COLOR_SPEC }
diagonal { style: BORDER_STYLE, color: COLOR_SPEC }
diagonalUp true or false
diagonalDown true or false

COLOR_SPEC: Colors for fill, font, and border are specified as objects, either:

BORDER_STYLE: Border style is a string value which may take on one of the following values:

Borders for merged areas are specified for each cell within the merged area. So to apply a box border to a merged area of 3x3 cells, border styles would need to be specified for eight different cells:

Thanks

sheetjs js-xlsx