visicalc_engine 1.1.0 copy "visicalc_engine: ^1.1.0" to clipboard
visicalc_engine: ^1.1.0 copied to clipboard

A clone of the visicalc spreadsheet engine in dart library for education use and UI foundation

example/example.dart

import 'package:a1/a1.dart';
import 'package:visicalc_engine/visicalc_engine.dart';

void main(List<String> arguments) {
  final sheet = {
    'A1'.a1: '/FR-12.2',
    'A2'.a1: '(a5+45)',
    'A3'.a1: '/F*13',
    'A4'.a1: '+A2+A5-A6',
    'A5'.a1: '-A3/2+2',
    'A6'.a1: '/F\$.23*2',
    'B1'.a1: '+A1+A3*3',
    'B2'.a1: '(A1+A3)*3',
    'B3'.a1: '12.23e-12',
    'B4'.a1: '.23e12',
    'B5'.a1: '/FRb4',
    'B6'.a1: '+b2',
    'B7'.a1: '@sum(a1...b6)',
    'D13'.a1: '+b2',
  };
  final worksheet = Engine.fromMap(sheet, parseErrorThrows: true);
  print(worksheet);

  // Change cell
  var b5 = worksheet["B5".a1];
  print('B5 formula was ${b5?.formulaType?.asFormula} = $b5');
  print('Now setting B5 to formula a1');
  worksheet['B5'.a1] = '+a1';

  b5 = worksheet["B5".a1];
  print('Now B5 formula is ${b5?.formulaType?.asFormula} = $b5');
  print(worksheet);
  print('Output to a .vc file\n: ${worksheet.toFileContents()}');

  // .vc file example
  final fileContents = '''\
>A1:/FL"TRUE\r
>A2:+B5*10\r
>A3:+B3+1\r
>A4:"tes\r
>A5:@SUM(B2...B5)\r
>B1:/FR"label\r
>B2:123\r
>B3:@PI\r
>B4:+B3\r
>B5:.23*2\r
\u0000''';
  print('Parsing an example of a VisiCalc .vc file format');
  final engine = Engine.fromFileContents(fileContents);
  print(engine);
}
copied to clipboard
2
likes
150
points
30
downloads
screenshot

Publisher

verified publisherhornmicro.com

Weekly Downloads

2024.09.26 - 2025.04.10

A clone of the visicalc spreadsheet engine in dart library for education use and UI foundation

Homepage
Repository (GitHub)

Topics

#visicalc #spreadsheet #worksheet #parsing

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

a1, intl, petitparser

More

Packages that depend on visicalc_engine