This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dependencies: | |
flutter: | |
sdk: flutter | |
cupertino_icons: ^0.1.2 | |
spreadsheet_decoder: # parsing xlsx files | |
path_provider: # reading/writing files in application document directory | |
file_picker: # using local files from device | |
pdf_viewer_plugin: # viewing pdf files | |
pdf: # generating pdf file | |
permission_handler: # handling runtime permissions |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FloatingActionButton( | |
onPressed: () async { | |
homeProvider.xlsxFilePath = await FilePicker.getFilePath( | |
type: FileType.CUSTOM, | |
fileExtension: 'xlsx', | |
); | |
}, | |
child: Icon(Icons.attach_file), | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'dart:io'; | |
import 'package:flutter/material.dart'; | |
import 'package:provider/provider.dart'; | |
import 'package:spreadsheet_decoder/spreadsheet_decoder.dart'; | |
import 'package:file_picker/file_picker.dart'; | |
import 'package:certificate_generator/providers/home.dart'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/foundation.dart'; | |
/// | |
/// Manages state for screens/HomeScreen.dart | |
/// | |
class HomeProvider with ChangeNotifier { | |
// holds the path of selected xlsx file path | |
String _xlsxFilePath; | |
// holds the names of tables of selected xlsx file path |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ListView( | |
padding: EdgeInsets.all(16), | |
children: <Widget>[ | |
...SpreadsheetDecoder.decodeBytes( | |
File(homeProvider.xlsxFilePath).readAsBytesSync()) | |
.tables[homeProvider.xlsxFileSelectedTable] | |
.rows | |
.map( | |
(value) => Column( | |
children: <Widget>[ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
import 'package:pdf_viewer_plugin/pdf_viewer_plugin.dart'; | |
class ViewerScreen extends StatelessWidget { | |
@override | |
Widget build(BuildContext context) { | |
Map<String, dynamic> view = ModalRoute.of(context).settings.arguments; | |
return Scaffold( | |
appBar: AppBar( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'dart:io'; | |
import 'package:flutter/material.dart'; | |
import 'package:share_extend/share_extend.dart'; | |
import 'package:certificate_generator/utils/commons.dart'; | |
class ResultScreen extends StatelessWidget { | |
@override |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
import 'package:provider/provider.dart'; | |
import 'package:permission_handler/permission_handler.dart'; | |
import 'package:certificate_generator/providers/home.dart'; | |
import 'package:certificate_generator/screens/home.dart'; | |
import 'package:certificate_generator/screens/result.dart'; | |
import 'package:certificate_generator/screens/viewer.dart'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Row( | |
mainAxisAlignment: MainAxisAlignment.spaceEvenly, | |
children: <Widget>[ | |
FlatButton( | |
onPressed: () { | |
// Download | |
}, | |
child: Icon(Icons.file_download), | |
), | |
FlatButton( |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FlatButton( | |
onPressed: () { | |
pdfGenerator(name); | |
Scaffold.of(context).showSnackBar( | |
SnackBar( | |
content: Text('$name.pdf downloaded'), | |
action: SnackBarAction( | |
label: 'View', | |
onPressed: () async { | |
String downloadPath = |
OlderNewer