flutter如何读取excel文件
在Flutter项目中需要读取Excel文件的数据,请问有什么推荐的插件或方法?希望支持xlsx和xls格式,并能方便地获取单元格内容。最好能提供简单的代码示例,谢谢!
2 回复
在Flutter中读取Excel文件,可使用excel库。步骤如下:
-
添加依赖到
pubspec.yaml:dependencies: excel: ^2.0.0 -
读取文件:
import 'package:excel/excel.dart'; import 'package:path/path.dart'; var fileBytes = File('path/to/file.xlsx').readAsBytesSync(); var excel = Excel.decodeBytes(fileBytes); -
遍历数据:
for (var table in excel.tables.keys) { print(table); // 表名 print(excel.tables[table]!.rows); // 行数据 }
注意:需处理文件路径和权限。
更多关于flutter如何读取excel文件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中读取Excel文件,可以使用 excel 或 syncfusion_flutter_xlsio 库。以下是使用 excel 库的步骤:
-
添加依赖:在
pubspec.yaml中添加:dependencies: excel: ^2.0.1 -
读取Excel文件:
- 从 assets 读取(需先在
pubspec.yaml的assets部分声明文件路径):import 'package:excel/excel.dart'; import 'package:flutter/services.dart'; Future<void> readExcelFromAssets() async { ByteData data = await rootBundle.load('assets/example.xlsx'); var bytes = data.buffer.asUint8List(); var excel = Excel.decodeBytes(bytes); for (var table in excel.tables.keys) { print("表名: $table"); for (var row in excel.tables[table]!.rows) { print(row.map((cell) => cell?.value).toList()); } } } - 从文件路径读取(需添加
path_provider和file_picker处理文件选择):import 'package:file_picker/file_picker.dart'; Future<void> readExcelFromFile() async { FilePickerResult? result = await FilePicker.platform.pickFiles( type: FileType.custom, allowedExtensions: ['xlsx'], ); if (result != null) { var file = result.files.single; var bytes = File(file.path!).readAsBytesSync(); var excel = Excel.decodeBytes(bytes); // 处理数据(同上) } }
- 从 assets 读取(需先在
注意事项:
- 确保文件路径正确,权限已配置(如 Android 的存储权限)。
- 大型文件可能需异步处理以避免阻塞 UI。
使用 syncfusion_flutter_xlsio(付费库)可支持更复杂操作,如写入和格式修改。根据需求选择合适的库即可。

