sheet_mapper_generator 1.0.0 copy "sheet_mapper_generator: ^1.0.0" to clipboard
sheet_mapper_generator: ^1.0.0 copied to clipboard

Code generator for sheet_mapper package. Generates mapping code for @SheetTable annotated classes.

sheet_mapper_generator #

pub package License: MIT

Code generator for the sheet_mapper package. Generates type-safe mapping code for parsing Excel, CSV, TSV, and PSV files into Dart objects.

Author #

Abdul Waseem Nihaal

Installation #

Add both packages to your pubspec.yaml:

dependencies:
  sheet_mapper: ^1.0.0

dev_dependencies:
  build_runner: ^2.4.0
  sheet_mapper_generator: ^1.0.0

Usage #

1. Define Your Model #

import 'package:sheet_mapper/sheet_mapper.dart';

part 'user.g.dart';

@SheetTable()
class User with _$UserSheetMapper {
  @SheetColumn('Full Name', required: true)
  final String name;

  @SheetColumn('Email', required: true)
  final String email;

  @SheetColumn('Age', defaultValue: '0')
  final int age;

  User({
    required this.name,
    required this.email,
    required this.age,
  });
}

2. Generate Code #

dart run build_runner build --delete-conflicting-outputs

3. Use the Generated Mapper #

// Parse from rows
final users = _$UserSheetMapper.fromSheet(rows);

// Or use with SheetMapperWidget from sheet_mapper package
SheetMapperWidget<User>(
  onResult: (users) => print('Parsed ${users.length} users'),
  onError: (error) => print('Error: $error'),
)

Annotations #

@SheetTable #

Mark a class as mappable from a spreadsheet:

@SheetTable(
  sheetName: 'Users',      // Excel sheet name (optional)
  sheetIndex: 0,           // Sheet index (default: 0)
  hasHeader: true,         // First row is header (default: true)
  startRow: 0,             // Skip rows (optional)
)
class User with _$UserSheetMapper { ... }

@SheetColumn #

Map a field to a spreadsheet column:

@SheetColumn(
  'Column Name',           // Header name
  defaultValue: '0',       // Default if empty (optional)
  dateFormat: 'yyyy-MM-dd',// Date format (optional)
  required: false,         // Throw error if missing (default: false)
  trim: true,              // Trim whitespace (default: true)
)
final String fieldName;

Supported Types #

Type Description Notes
String Direct text Default: "-" if empty
int Integer numbers Nullable by default
double Decimal numbers Nullable by default
bool Boolean Accepts: true/false, 1/0, yes/no
DateTime Date/time ISO8601 or custom format

All types support nullable versions (String?, int?, etc.).

  • sheet_mapper - The main package with annotations, parsers, and drag-drop UI widget

License #

This project is licensed under the MIT License - see the LICENSE file for details.

2
likes
40
points
79
downloads

Publisher

unverified uploader

Weekly Downloads

Code generator for sheet_mapper package. Generates mapping code for @SheetTable annotated classes.

Repository (GitHub)

License

MIT (license)

Dependencies

analyzer, build, sheet_mapper, source_gen

More

Packages that depend on sheet_mapper_generator