Create Schema
Creating a well-defined schema is crucial for generating consistent and type-safe Excel reports. ExcelSchemaBuilder is a class provided by typed-xlsx that enables you to construct such schemas with ease.
What is ExcelSchemaBuilder?
ExcelSchemaBuilder is a builder class designed to create a type-safe schema that represents the structure of the tables you plan to export to an Excel file.
Instantiating a Schema
To begin defining a schema, instantiate an ExcelSchemaBuilder object using the create method. You need to provide a type parameter that describes the shape of the data you'll be working with.
Here's how to instantiate a schema for a table with firstName and lastName fields:
import { ExcelSchemaBuilder } from '@chronicstone/typed-xlsx'
const schema = ExcelSchemaBuilder.create<object>()Method Chaining
ExcelSchemaBuilder utilizes method chaining to define each column of your schema. This approach is necessary to provide type-safety and ensure that your schema is well-defined and consistent.
Here's an example of what not to do:
const schema = ExcelSchemaBuilder.create<{ firstName: string, lastName: string }>()
schema.column('firstName', { key: 'firstName' })
// DUPLICATE COLUMN KEY, BUT NO TYPESCRIPT ERROR
schema.column('firstName', { key: 'firstName' })Instead, chain the method calls like this:
const schema = ExcelSchemaBuilder.create<{ firstName: string, lastName: string }>()
.column('firstName', { key: 'firstName' })
// WILL THROW ERROR, KEY ALREADY EXISTS
.column('firstName', { key: 'firstName' })