A tiny library to create Microsoft Office Excel(2007) files under Nodejs.
npm install msexcel-builder
npm install msexcel-builder
`
`javascript
var excelbuilder = require('msexcel-builder');
`
Then create a sample workbook with one sheet and some data.
`javascript
// Create a new workbook file in current working-path
var workbook = excelbuilder.createWorkbook('./', 'sample.xlsx')
// Create a new worksheet with 10 columns and 12 rows
var sheet1 = workbook.createSheet('sheet1', 10, 12);
// Fill some data
sheet1.set(1, 1, 'I am title');
for (var i = 2; i < 5; i++)
sheet1.set(i, 1, 'test'+i);
// Save it
workbook.save(function(ok){
if (!ok)
workbook.cancel();
else
console.log('congratulations, your workbook created');
});
`
API
$3
Create a new workbook file.
* save_path - (String) The path to save workbook.
* file_name - (String) The file name of workbook.
Returns a Workbook Object.
Example: create a xlsx file saved to C:\test.xlsx
`javascript
var workbook = excelbuilder.createWorkbook('C:\','test.xlsx');
`
$3
Create a new worksheet with specified columns and rows
* sheet_name - (String) worksheet name.
* column_count - (Number) sheet column count.
* row_count - (Number) sheet row count.
Returns a Sheet object
Notes: The sheet name must be unique within a same workbook.
Example: Create a new sheet named 'sheet1' with 5 columns and 8 rows
`javascript
var sheet1 = workbook.createSheet('sheet1', 5, 8);
`
$3
Save current workbook.
* callback - (Function) Callback function to handle save result.
Example:
`javascript
workbook.save(function(ok){
console.log('workbook saved ' + (ok?'ok':'failed'));
});
`
$3
Cancel to make current workbook,drop all data.
$3
Set the cell data.
* col - (Number) Cell column index(start with 1).
* row - (Number) Cell row index(start with 1).
* str - (String) Cell data.
No returns.
Example:
`javascript
sheet1.set(1,1,'Hello ');
sheet1.set(2,1,'world!');
`
Sheet.width(col, width)
Sheet.height(row, height)
Set the column width or row height
Example:
`javascript
sheet1.width(1, 30);
sheet1.height(1, 20);
`
Sheet.align(col, row, align)
Sheet.valign(col, row, valign)
Sheet.wrap(col, row, wrap)
Sheet.rotate(col, row, angle)
Set cell text align style and wrap style
* align - (String) align style: 'center'/'left'/'right'
* valign - (String) vertical align style: 'center'/'top'/'bottom'
* wrap - (String) text wrap style:'true' / 'false'
* rotate - (String) Numeric angle for text rotation: '90'/'-90'
Example:
`javascript
sheet1.align(2, 1, 'center');
sheet1.valign(3, 3, 'top');
sheet1.wrap(1, 1, 'true');
sheet1.rotate(1, 1, 90);
`
Sheet.font(col, row, font_style)
Sheet.fill(col, row, fill_style)
Sheet.border(col, row, border_style)
Set cell font style, fill style or border style
* font_style - (Object) font style options
The options may contain:
* name - (String) font name
* sz - (String) font size
* family - (String) font family
* scheme - (String) font scheme
* bold - (String) if bold: 'true'/'false'
* iter - (String) if italic: 'true'/'false'
* fill_style - (Object) fill style options
The options may contain:
* type - (String) fill type: such as 'solid'
* fgColor - (String) front color
* bgColor - (String) background color
* border_style - (Object) border style options
The options may contain:
* left - (String) style: 'thin'/'medium'/'thick'/'double'
* top - (String) style: 'thin'/'medium'/'thick'/'double'
* right - (String) style: 'thin'/'medium'/'thick'/'double'
* bottom - (String) style: 'thin'/'medium'/'thick'/'double'
Example:
`javascript
sheet1.font(2, 1, {name:'黑体',sz:'24',family:'3',scheme:'-',bold:'true',iter:'true'});
sheet1.fill(3, 3, {type:'solid',fgColor:'8',bgColor:'64'});
sheet1.border(1, 1, {left:'medium',top:'medium',right:'thin',bottom:'medium'});
`
Sheet.merge(from_cell, to_cell)
Merge some cell ranges
* from_cell / to_cell - (Object) cell position
The cell object contains:
* col - (Number) cell column index(start with 1)
* row - (Number) cell row index(start with 1)
Example: Merge the first row as title from (1,1) to (5,1)
`javascript
sheet1.merge({col:1,row:1},{col:5,row:1});
`
Testing
In node.js
`
> cd test
> node test.js
``