export method

Future<bool> export(
  1. String? format,
  2. String? filename
)

Implementation

Future<bool> export(String? format, String? filename) async {
  try {
    var view = findListenerOfExactType(TableViewState);
    if (view is TableViewState) {
      if (isNullOrEmpty(filename)) filename = newId();
      var name = Mime.toSafeFileName(filename!.split(".")[0]);
      switch (format?.toLowerCase().trim()) {
        case "raw":
          var file = await Data.toCsv(Data.from(data));
          var bytes = utf8.encode(file);
          Platform.fileSaveAs(bytes, "$name.csv");
          break;

        case "csv":
          var file = await view.exportToCSV();
          var bytes = utf8.encode(file ?? "");
          Platform.fileSaveAs(bytes, "$name.csv");
          break;

        case "pdf":
        default:
          var bytes = await view.exportToPDF();
          if (bytes != null) Platform.fileSaveAs(bytes, "$name.pdf");
          break;
      }
    }
  } catch (e) {
    Log().exception(e);
  }
  return true;
}