【Flutter】如何读取 excel 文件

本文介绍了在Flutter中使用file_picker和excel库读取Excel文件的方法,包括处理选择文件、读取文件内容和解析文件。同时,针对4.0.4版本的bug(读取特定格式Excel文件时的异常),作者给出了临时解决方案,修正了对自定义数字格式ID的判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇博客介绍了文件选择器 file_picker 的用法,这一篇博文将介绍如何读取 excel 文件。

需要明确的是,Flutter 本身没有提供读取 excel 的组件,所以我们采用了社区的开源解决方案——excel

不过,写作这篇博客时的最新版(4.0.4)有一个 bug,读取 Mac Numbers 和 WPS 创建的 *.xlsx 文件时会抛出如下异常:

_Exception (Exception: custom numFmtId starts at 164 but found a value of 41), error happens when I read an excel file using flutter excel package

针对这个问题,有人已经提了 issue,作者暂时还没解决,文章最后我会给出一个临时解决方案。

首先,新建一个页面,中间放置一个 ElevatedButton,用于读取本地 excel 文件。

然后,给按钮增加点击事件处理方法:

ElevatedButton(
  onPressed: () {
   
    // _pickExcelFile();
    _pickExcelFile();
  },
  child: const Text('Import'),
),

其中 _pickExcelFile 方法的实现如下:

_pickExcelFile() async {
   
  // 选择文件
  FilePickerResult? pickedFile = await FilePicker.platform.pickFiles(
    type: FileType.custom,
    allowedExtensions: ['xlsx'],
    allowMultiple: false,
  
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值