VSXSSF is a wrapper library over Apache POI-XSSF written in Kotlin. It defines a DSL which simplify writing Excel files.
import org.vince.vsxssf.StyleOptions
import org.vince.vsxssf.workbook
val actors = arrayOf("William Hartnell", "Patrick Troughton", "Jon Pertwee", "Tom Baker", "Peter Davison", "Colin Baker", "Sylvester McCoy", "Paul McGann",
"Christopher Eccleston", "David Tennant", "Matt Smith", "Peter Capaldi", "Jodie Whittaker")
workbook(filename = "/tmp/doctor-who.xlsx") {
sheet(sheetName = "Actors",
colSize = arrayOf(2000, 4000)) {
style(styleName = "title",
options = StyleOptions(bold = true))
row {
cell("Doctor #", "title")
cell("Name", "title")
}
actors.forEachIndexed { index, name ->
row {
cell((index+1).toString()) // doctor's number
cell(name) // actor's name
}
}
}
}- Creates Excel Workbook, Sheets, Rows and Cells
- Basic styling options (center, font size, colors)
- Page setup (page size and direction)
- Merged cells
- Repeated header
- Footer
Creates an Excel workbook file.
| attribute | type | description |
|---|---|---|
| filename | String | destination .xlsx filename |
context: Workbook
Creates an Excel sheet
| attribute | type | description |
|---|---|---|
| sheetName | String | sheet title |
| colSize | Array[Int] | (madatory) column sizes |
| headerRows | Int | number of rows repeated on each printed page |
| landscape | Boolean | page layout in landscape |
| paperSize | PaperSizeEnum | paper size (A4, LETTER) |
context: Workbook
Register a new Style, associated with a name for further use
| attribute | type | description |
|---|---|---|
| center | Boolean | center text horizontally |
| verticalCenter | Boolean | center text vertically |
| bold | Boolean | bold text |
| border | Boolean | add a thin cell border |
| bgColor | HSSFColorPredefined | background color |
| wrapText | Boolean | wrap text |
| fontHeight | Short | set text font height |
context: Workbook
Register a new picture, associated with a name for further use
context: Sheet
Add footer texts
| attribute | type | description |
|---|---|---|
| left | String | left text |
| center | String | center text |
| right | String | right text |
context: Sheet
Add a new row
| attribute | type | description |
|---|---|---|
| height | Short | define row height |
context: Sheet
Add an N empty new rows
| attribute | type | description |
|---|---|---|
| height | Short | define row height |
| repeat | Int | number of empty rows |
context: Row
Create a new Cell
| attribute | type | description |
|---|---|---|
| text | String | cell content |
| style | String | Style name as defined with style function |
| range | Int | merge N following cells |
context: Row
Add an N empty new cells
| attribute | type | description |
|---|---|---|
| style | String | set cell style |
| repeat | Int | number of empty cells |
context: Row
Add a picture at current row
| attribute | type | description |
|---|---|---|
| col1 | Int | set picture start from col1 |
| col2 | Int | set picture end to col2 |
| pictureName | String | get picture from previously defined name |