flutter如何读取excel文件

在Flutter项目中需要读取Excel文件的数据,请问有什么推荐的插件或方法?希望支持xlsx和xls格式,并能方便地获取单元格内容。最好能提供简单的代码示例,谢谢!

2 回复

在Flutter中读取Excel文件,可使用excel库。步骤如下:

  1. 添加依赖到pubspec.yaml

    dependencies:
      excel: ^2.0.0
    
  2. 读取文件:

    import 'package:excel/excel.dart';
    import 'package:path/path.dart';
    
    var fileBytes = File('path/to/file.xlsx').readAsBytesSync();
    var excel = Excel.decodeBytes(fileBytes);
    
  3. 遍历数据:

    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文件,可以使用 excelsyncfusion_flutter_xlsio 库。以下是使用 excel 库的步骤:

  1. 添加依赖:在 pubspec.yaml 中添加:

    dependencies:
      excel: ^2.0.1
    
  2. 读取Excel文件

    • 从 assets 读取(需先在 pubspec.yamlassets 部分声明文件路径):
      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_providerfile_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);
          // 处理数据(同上)
        }
      }
      

注意事项

  • 确保文件路径正确,权限已配置(如 Android 的存储权限)。
  • 大型文件可能需异步处理以避免阻塞 UI。

使用 syncfusion_flutter_xlsio(付费库)可支持更复杂操作,如写入和格式修改。根据需求选择合适的库即可。

回到顶部