sheetjs-style-update
v0.15.9
Published
SheetJS Spreadsheet data parser and writer
Maintainers
Readme
install
npm install sheetjs-style-updateHow 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:
{ auto: 1}specifying automatic values{ rgb: "FFFFAA00" }specifying a hex ARGB value{ theme: "1", tint: "-0.25"}specifying an integer index to a theme color and a tint value (default 0){ indexed: 64}default value forfill.bgColor
BORDER_STYLE: Border style is a string value which may take on one of the following values:
thinmediumthickdottedhairdashedmediumDasheddashDotmediumDashDotdashDotDotmediumDashDotDotslantDashDot
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:
- left borders for the three cells on the left,
- right borders for the cells on the right
- top borders for the cells on the top
- bottom borders for the cells on the left
