Once you have a Cell
object wrapper in JSExcelCell
class, you can set and get it's properties.
1 Seting cell value
Each Cell
can have a value (boolean, number, string or date) or a formula.
The methods for setting cell values or a formula are described below.
Return | Method | Description |
---|---|---|
JSExcelCell
|
setCellValue(boolean value) | Sets the value of a cell to a boolean. |
JSExcelCell
|
setCellValue(double value) | Sets the value of a cell to a double. |
JSExcelCell
|
setCellValue(String value) | Sets the value of a cell to a String. |
JSExcelCell
|
setCellValue(java.uti.Date value) | Sets the value of a cell to a Date. |
JSExcelCell
|
setCellFormula(String formula) | Sets a formula on a cell. |
2 Getting cell value
As value is set to a Cell
it aquires a CellType. So we have BOOLEAN
, NUMERIC
, STRING
and FORMULA
cells.
Return | Method | Description |
---|---|---|
Object | getCellValue() | Returns the value for the Cell . If Cell is a formula, it's evaluted using the Workbook FormulaEvaluator instance. |
String | getCellFormula() | Returns the string representing the formula for a Cell . If cell has no formula it will return null. |
CellType | getCellType() | Returns the enumeration constant for the Cell type (BOOLEAN , NUMERIC , STRING , FORMULA , ...). |
Notice that a Date Cell
is a NUMERIC
Cell
with a style.
3 Getting cell properties
There are some methods to get cell properties:.
Return | Method | Description |
---|---|---|
Number | getRowIndex() | Return row index number refering row coordinates of the cell. |
Number | getColumnIndex() | Return column index number refering column coordinates of the cell. |
4 Naming cells
You can give a unique name to a Cell
in a Workbook. This can be used to do template based operations
as described in next chapters. To give a name or set a name you can use the following Cell
methods.
Return | Method | Description |
---|---|---|
JSExcelCell
|
setCellName(String name) | Sets a name for the Cell . |
String | getCellName() | Gets the name for the cell or null if it has no name. |
String | getColumnName() | When name has the form tableName.columName returns the columnName or null is cell has no name. |
Once a Cell
has a name it can be accessed directly using Workbook getCellByName
method.
<script> var wb = new Ax.ms.Excel(); var sheet = wb.createSheet("test"); var cell = sheet.getCell("A1"); cell.setCellName("moon"); cell.setCellValue("Moon is beautiful"); console.log("cell name : " + cell.getCellName()); console.log("cell is : " + wb.getCellByName("moon")); console.log("cell value : " + wb.getCellByName("moon").getCellValue()); </script>
cell name : moon
cell is : A1
cell value : Moon is beautiful
5 Setting comments
To set a cell comment simply call method setCellComment(String comment)
6 Setting cell style
Styles belongs to Workbook. To create a style, you need to call createStyle()
on
Wokbook. Then, configure the style and set it to cells. It's a good policy to share a
style for as many cells you can avoiding creating repetitive styles.
6.1 Data format
You can setup a data format for a cell using predefined data formats. Avaliable data formats
can be displayed accessing Ax.ms.Excel.DataFormat
list in the Workbook object.
To see the list of predefined data formats use:
<script> console.log(Ax.ms.Excel.DataFormat); </script>
[[General, 0, 0.00, #,##0, #,##0.00, "$"#,##0_);("$"#,##0), "$"#,##0_);[Red]("$"#,##0), "$"#,##0.00_);("$"#,##0.00), "$"#,##0.00_);[Red]("$"#,##0.00), 0%, 0.00%, 0.00E+00, # ?/?, # ??/??, m/d/yy, d-mmm-yy, d-mmm, mmm-yy, h:mm AM/PM, h:mm:ss AM/PM, h:mm, h:mm:ss, m/d/yy h:mm, reserved-0x17, reserved-0x18, reserved-0x19, reserved-0x1A, reserved-0x1B, reserved-0x1C, reserved-0x1D, reserved-0x1E, reserved-0x1F, reserved-0x20, reserved-0x21, reserved-0x22, reserved-0x23, reserved-0x24, #,##0_);(#,##0), #,##0_);[Red](#,##0), #,##0.00_);(#,##0.00), #,##0.00_);[Red](#,##0.00), _(* #,##0_);_(* (#,##0);_(* "-"_);_(@_), _("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_), _(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_), _("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_), mm:ss, [h]:mm:ss, mm:ss.0, ##0.0E+0, @]]
- 0, "General"
- 1, "0"
- 2, "0.00"
- 3, "#,##0"
- 4, "#,##0.00"
- 5, "$#,##0_);($#,##0)"
- 6, "$#,##0_);[Red]($#,##0)"
- 7, "$#,##0.00);($#,##0.00)"
- 8, "$#,##0.00_);[Red]($#,##0.00)"
- 9, "0%"
- 0xa, "0.00%"
- 0xb, "0.00E+00"
- 0xc, "# ?/?"
- 0xd, "# ??/??"
- 0xe, "m/d/yy"
- 0xf, "d-mmm-yy"
- 0x10, "d-mmm"
- 0x11, "mmm-yy"
- 0x12, "h:mm AM/PM"
- 0x13, "h:mm:ss AM/PM"
- 0x14, "h:mm"
- 0x15, "h:mm:ss"
- 0x16, "m/d/yy h:mm"
- 0x26, "#,##0_);[Red](#,##0)"
- 0x27, "#,##0.00_);(#,##0.00)"
- 0x28, "#,##0.00_);[Red](#,##0.00)"
- 0x29, "_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)"
- 0x2a, "_($* #,##0_);_($* (#,##0);_($* \"-\"_);_(@_)"
- 0x2b, "_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)"
- 0x2c, "_($* #,##0.00_);_($* (#,##0.00);_($* \"-\"??_);_(@_)"
- 0x2d, "mm:ss"
- 0x2e, "[h]:mm:ss"
- 0x2f, "mm:ss.0"
- 0x30, "##0.0E+0"
- 0x31, "@" - This is text format.
- 0x31 "text" - Alias for "@"
You can use any of the predefined data formats by name. For example, to set the "#,##0" data format use:
<script> var wb = new Ax.ms.Excel(); var sheet = wb.createSheet("test"); var cell1 = sheet.getCell("A1"); var cell2 = sheet.getCell("A2"); cell1.setCellValue(200000000); cell2.setCellValue(200000000); var style = wb.createCellStyle(); cell2.setCellStyle(style); // Set data format style.setDataFormat("#,##0"); wb.setAutoSizeColumns(); return wb; </script>
6.2 Number format
TO DO
This section is incomplete and will be concluded as soon as possible.6.3 Fonts
Fonts can be created from Workbook and assigned to a style.
<script> var wb = new Ax.ms.Excel(); var sheet = wb.createSheet("test"); var cell = sheet.getCell("A1"); cell.setCellValue(200000000); var style = wb.createCellStyle(); cell.setCellStyle(style); // Set font and size style.setFont(wb.createFont().setBold(true).setFontHeight(24)); wb.setAutoSizeColumns(); return wb; </script>
Font style has serveral options as described below.
Return | Method | Description |
---|---|---|
JSExcelFont
|
setFontName(String name) | set the name for the font (i.e. Arial) |
JSExcelFont
|
setBold(boolean bold) | set whether to use bold or not |
JSExcelFont
|
setItalic(boolean bold) | set whether to use italics or not |
JSExcelFont
|
setStrikeout(boolean bold) | set whether to use a strikeout horizontal line through the text or not |
JSExcelFont
|
setColor(IndexedColors color) | set the color for the font. |
JSExcelFont
|
setFontHeight(int height) | Set the font height in unit's of 1/20th of a point. Maybe you might want to use the setFontHeightInPoints which matches to the familiar 10, 12, 14 etc.. |
JSExcelFont
|
setFontHeightInPoints(int height) | Sets font height in the familiar unit of measure - points. |
6.4 Borders
To setup a border style in a cell you must use any of the border types as defined in BorderStyle
enum.
You can list border types by using:
<script> console.log(Ax.ms.Excel.BorderStyle); </script>
[DOTTED, HAIR, MEDIUM, DASH_DOT_DOT, SLANTED_DASH_DOT, MEDIUM_DASH_DOT_DOT, DASHED, DASH_DOT, MEDIUM_DASH_DOT, MEDIUM_DASHED, DOUBLE, NONE, THICK, THIN]
You can control border style for left, right, bottom and top corners. Or set all borders using same style.
<script> var wb = new Ax.ms.Excel(); var sheet = wb.createSheet("test"); var cell1 = sheet.getCell("B2"); var cell2 = sheet.getCell("D2"); cell1.setCellValue(1000); cell2.setCellValue(2000); var style1 = wb.createCellStyle(); var style2 = wb.createCellStyle(); cell1.setCellStyle(style1); cell2.setCellStyle(style2); // Set border style style1.setBorderLeft(Ax.ms.Excel.BorderStyle.THICK); style1.setBorderRight(Ax.ms.Excel.BorderStyle.THICK); style2.setBorders(Ax.ms.Excel.BorderStyle.THICK); wb.setAutoSizeColumns(); return wb; </script>
6.5 Colors
The enum Ax.ms.Excel.Color
holding predefined colors is available in Workbook object
for Apache POI IndexedColors class. The following examples lists the predefined colors
constants.
<script> console.log(Ax.ms.Excel.Color); </script>
[TAN, TURQUOISE1, TURQUOISE, LIGHT_TURQUOISE, LIGHT_GREEN, LIGHT_TURQUOISE1, VIOLET, BLACK, OLIVE_GREEN, GREY_80_PERCENT, GREY_50_PERCENT, AQUA, YELLOW1, BLUE_GREY, INDIGO, LIGHT_CORNFLOWER_BLUE, PLUM, BRIGHT_GREEN1, GREY_25_PERCENT, LIGHT_BLUE, LAVENDER, GREY_40_PERCENT, YELLOW, GOLD, LIGHT_ORANGE, CORAL, BLUE, WHITE1, RED1, PALE_BLUE, CORNFLOWER_BLUE, AUTOMATIC, BLUE1, ORCHID, SEA_GREEN, PINK, DARK_YELLOW, DARK_RED, BRIGHT_GREEN, ROYAL_BLUE, BROWN, BLACK1, LEMON_CHIFFON, ORANGE, WHITE, ROSE, GREEN, DARK_BLUE, LIGHT_YELLOW, MAROON, RED, PINK1, DARK_TEAL, SKY_BLUE, LIME, TEAL, DARK_GREEN]
6.5.1 Font color
Colors are assigned text font. So to change the color of a cell you need to create a style with an specific font with color.
The following example generates cells for all predefined colors.
<script> var wb = new Ax.ms.Excel(); var sheet = wb.createSheet("test"); var row = 0; for (var color of Ax.ms.Excel.Color) { var style = wb.createCellStyle(); style.setFont(wb.createFont().setBold(true).setColor(color)); var cell1 = sheet.getCell(row, 0).setCellValue(color + ""); var cell2 = sheet.getCell(row, 1).setCellValue(color + ""); cell2.setCellStyle(style); row++; } wb.setAutoSizeColumns(); return wb; </script>
6.5.2 Background color
Background color for a cell can be set in the style using setFillForegroundColor
.
<script> var wb = new Ax.ms.Excel(); var sheet = wb.createSheet("test"); var cell1 = sheet.getCell("A1"); var cell2 = sheet.getCell("A2"); cell1.setCellValue(200000000); cell2.setCellValue(200000000); var style = wb.createCellStyle(); cell2.setCellStyle(style); // Set data format style.setDataFormat("#,##0"); // Set font and font color style.setFont(wb.createFont().setBold(true).setColor(Ax.ms.Excel.Color.WHITE).setHeight(16)); // Set fill style.setFillForegroundColor(Ax.ms.Excel.Color.RED); wb.setAutoSizeColumns(); return wb; </script>
6.6 Align
To aling a cell you can use the Ax.ms.Excel.HorizontalAlignment
enum from Workbook object.
To see the list of predefined HorizontalAlignment formats use:
<script> console.log(Ax.ms.Excel.HorizontalAlignment); </script>
[CENTER, JUSTIFY, FILL, LEFT, CENTER_SELECTION, RIGHT, GENERAL, DISTRIBUTED]
To set the aligment in a style use setAligment
method.
<script> var wb = new Ax.ms.Excel(); var sheet = wb.createSheet("test"); var cell = sheet.getCell("A1"); cell.setCellValue("hello"); var style = wb.createCellStyle(); cell.setCellStyle(style); style.setAlign(Ax.ms.Excel.HorizontalAlignment.CENTER); return wb; </script>
6.7 Text wrap
By default newlines are ignored and text is displayed in a single line. You can force wrap of text using
setWrapText
method.
<script> var wb = new Ax.ms.Excel(); var sheet = wb.createSheet("test"); var cell1 = sheet.getCell("A1"); var cell2 = sheet.getCell("A2"); cell1.setCellValue("Hello\nworld"); cell2.setCellValue("Hello\nworld"); var style = wb.createCellStyle(); cell2.setCellStyle(style); // Set text wrap style.setWrapText(true); wb.setAutoSizeColumns(); return wb; </script>
7 Setting hyperlinks
You can create cell hyperlinks to external URL, MAIL and DOCUMENT references.
<script> var wb = new Ax.ms.Excel("test"); var sheet1 = wb.createSheet("sheet1"); var sheet2 = wb.createSheet("sheet2"); // A HREF hyperlink sheet1.getCell("B5") .setCellValue("amazon") .setHyperlink("http://www.amazon.com") // Use default hyperlink style from workbook .setCellStyle(wb.getCellStyleHref()); // A mail hyperlink sheet1.getCell("B6") .setCellValue("mailto") .setHyperlink("mailto:contact@acme.com?subject=Hyperlink") // Use default hyperlink style from workbook .setCellStyle(wb.getCellStyleHref()); // A document hyperlink to other sheet and cell sheet2.getCell("D5").setCellValue("linked cell"); sheet1.getCell("B7") .setCellValue("cell link") .setHyperlink("'Sheet2'!D5") // Use default hyperlink style from workbook .setCellStyle(wb.getCellStyleHref()); return wb.toBlob(); </script>
In general you don't need to specify
link type as setHyperlink
automatically detects it. But if you need,
you can send hyperlink type as second argument to function setHyperlink
using
values from Ax.ms.Excel.HyperlinkType
enum.