一、引入flutter插件

dependencies:syncfusion_flutter_xlsio: ^20.3.50-betadio: ^4.0.6open_file: ^3.2.1

二、在utils中创建helper文件夹

三、在helper中创建save_file_mobile.dart和save_file_web.dart文件

///save_file_mobile
import 'dart:io';
import 'package:open_file/open_file.dart' as open_file;
import 'package:path_provider/path_provider.dart' as path_provider;
// ignore: depend_on_referenced_packages
import 'package:path_provider_platform_interface/path_provider_platform_interface.dart';///To save the Excel file in the device
///To save the Excel file in the device
Future<void> saveAndLaunchFile(List<int> bytes, String fileName) async {//Get the storage folder location using path_provider package.String? path;if (Platform.isAndroid ||Platform.isIOS ||Platform.isLinux ||Platform.isWindows) {final Directory directory =await path_provider.getApplicationSupportDirectory();path = directory.path;} else {path = await PathProviderPlatform.instance.getApplicationSupportPath();}final File file =File(Platform.isWindows ? '$path\\$fileName' : '$path/$fileName');await file.writeAsBytes(bytes, flush: true);if (Platform.isAndroid || Platform.isIOS) {//Launch the file (used open_file package)await open_file.OpenFile.open('$path/$fileName');} else if (Platform.isWindows) {await Process.run('start', <String>['$path\\$fileName'], runInShell: true);} else if (Platform.isMacOS) {await Process.run('open', <String>['$path/$fileName'], runInShell: true);} else if (Platform.isLinux) {await Process.run('xdg-open', <String>['$path/$fileName'],runInShell: true);}
}
///save_file_web
import 'dart:async';
import 'dart:convert';
// ignore: avoid_web_libraries_in_flutter
import 'dart:html';///To save the Excel file in the device
///To save the Excel file in the device
Future<void> saveAndLaunchFile(List<int> bytes, String fileName) async {AnchorElement(href:'data:application/octet-stream;charset=utf-16le;base64,${base64.encode(bytes)}')..setAttribute('download', fileName)..click();
}

四、在utils中创建excel.dart文件

import 'package:syncfusion_flutter_xlsio/xlsio.dart' as Flutter_xlsio;
import 'helper/save_file_mobile.dart'if (dart.library.html) 'helper/save_file_web.dart';class Excel {static Future<void> generateExcel(// Excel标题List<String>? columnList,// Excel数据List? dataList,// Excel文件名称String? excelName,) async {List excelHeader = ['A1','B1','C1','D1','E1','F1','G1','H1','I1','J1','K1','L1','M1','N1','O1','P1','Q1','R1','S1','T1','U1','V1','W1','X1','Y1','Z1',];// 创建一个Excelfinal Flutter_xlsio.Workbook workbook = Flutter_xlsio.Workbook();// 通过索引访问工作表第0个sheet.final Flutter_xlsio.Worksheet sheet = workbook.worksheets[0];// 设置标题for (int i = 0; i < columnList!.length; i++) {sheet.getRangeByName(excelHeader[i]).columnWidth = 20.00;sheet.getRangeByName(excelHeader[i]).setText(columnList[i]);}// 这里循环取数据for (int i = 0; i < dataList!.length; i++) {int index = 1;dataList[i].entries.forEach((element) {sheet.getRangeByIndex(i + 2, index).setText("${element.value}");index++;});}List<int> bytes = workbook.saveAsStream();workbook.dispose();await saveAndLaunchFile(bytes, excelName);}
}

五、在其他文件中引入

import 'package:***/utils/excel.dart';MaterialButton(onPressed: () => Excel.generateExcel(dataList, columnList),child: Text('导出Excel'),)

Flutter 导出excel文件相关推荐

  1. vue2.0通过Axios导出excel文件(解决乱码问题)

    vue2.0通过Axios导出excel文件(解决乱码问题) 参考文章: (1)vue2.0通过Axios导出excel文件(解决乱码问题) (2)https://www.cnblogs.com/ad ...

  2. php 将数组导出excel,#php 怎样将 数组导出excel文件#前端导出excel表格

    php 怎样将 数组导出excel文件 public function excel() { //在这里你要导出的数据 $data = M('pmproject',"pm_",MYS ...

  3. 【转】 (C#)利用Aspose.Cells组件导入导出excel文件

    Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFi ...

  4. Java poi插件导出Excel文件合并多sheet页

    文章目录 一.java导出excel格式文件 二.excel文件多sheet页合并 前言:2020年第一篇文章,就写这两天工作中遇到的这个小需求吧,导出多excel,每个excel有多个sheet页, ...

  5. C#导出Excel文件,过长数值显示为科学计数法解决方法 C#

    C#导出EXCEL文件,身份证号码或某些ID内容长度超过15个数字,这样导出的Excel文件中默认情况下将这个值以科学计数方式显示,下面提供两种解决方式: 1.在转出的内容前,加上一个TAB符号,C# ...

  6. springboot中使用poi导出excel文件(亲测实现了第一个功能)

    1.POI简介 Jakarta POI 是一套用于访问微软格式文档的Java API. 组件HWPF用于操作Word的; 组件HSSF用于操作Excel格式文件. 2.常用组件 HSSFWorkboo ...

  7. java导入、导出Excel文件

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  8. asp.net中通过html格式导出excel文件

    //通过html格式生成导出excel文件,下载保存.   StreamExport(wgMdcStaff5, fileName, ToDataTable<MdcDrugProcureStock ...

  9. 如何使用JavaScript实现纯前端读取和导出excel文件(转)

    转自小茗同学博客:https://www.cnblogs.com/liuxianan/p/js-excel.html js-xlsx 介绍 由SheetJS出品的js-xlsx是一款非常方便的只需要纯 ...

最新文章

  1. 14级团队学习成果汇报 -- 利用express+socket.io搭建简易版聊天室
  2. android 新浪微博的点赞功能实现,Android PraiseTextView实现朋友圈点赞功能
  3. Samba的简介和配置
  4. 利用Jquery处理跨域请求
  5. php获取html中文本框内容_小猿圈Python入门之批量获取html内body内容的方法
  6. 【Latex】下标放在符号正下方
  7. IT人才需要怎样的沟通表达能力
  8. mysql 日志大小_查看mysql日志文件大小和数据库大小
  9. Deep3DBox论文解读
  10. json解析库go-simplejson使用
  11. 华为p50 pro 鸿蒙,华为p50pro有双系统吗-采用鸿蒙系统吗
  12. 项目进度计划检查方法与项目进度管理相关模版表单(干货+资料)
  13. 简单控制台项目:电影购票系统
  14. Android 开发日志之LBS相关开发
  15. 史上最通俗,彻底搞懂字符乱码问题的本质
  16. jinja2中if和for的使用
  17. 三光(可见光、红外光、激光)云台产品调研
  18. Dashboard是什么意思 Dashboard怎么用?
  19. Android特效专辑(十二)——仿支付宝咻一咻功能实现波纹扩散特效,精细小巧的View
  20. 富友支付接口对接不是必填的值如何处理

热门文章

  1. Redis 守护进程
  2. Android基础之BroadCastReceiver短信拦截器
  3. Tomcat下的startup.bat启动失败解决方法(闪退)
  4. 监测DNS服务器状态手动修复,dns服务器重建恢复
  5. 获取sas员工转正日期 (传入入职时间:‘2018-01-29’、转正月份数:3个月、6个月)
  6. 分析了8600张双11高点击率海报奥秘,收藏好备战双12!
  7. 收到礼品,拿出来Show一下.
  8. 前端学习vue第三天(到P60)
  9. 四人追逐matlab,四人追逐问题及C程序
  10. 各类决策树算法的对比