You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Flutter的xlsio读取指定目录下的现有Excel文件(桌面端)

在Flutter桌面应用中使用Xlsio操作指定目录的现有Excel文件

前置准备

确保你的项目已添加syncfusion_flutter_xlsio依赖到pubspec.yaml文件中。

实现步骤与示例代码

桌面环境可直接通过Dart的dart:io库访问本地文件系统,结合Xlsio完成现有Excel文件的读取、修改与保存:

import 'dart:io';
import 'package:syncfusion_flutter_xlsio/xlsio.dart';

void handleExistingExcel() async {
  // 替换为你要操作的Excel文件绝对路径
  final targetFilePath = '/Users/username/Documents/test.xlsx';
  
  // 1. 验证文件是否存在
  final excelFile = File(targetFilePath);
  if (!await excelFile.exists()) {
    print('指定路径下未找到目标Excel文件');
    return;
  }

  // 2. 读取文件字节数据
  final fileBytes = await excelFile.readAsBytes();

  // 3. 加载现有Excel文件到Workbook
  final workbook = Workbook.fromBytes(fileBytes);

  // 4. 执行文件操作示例:修改工作表内容
  final firstSheet = workbook.worksheets[0];
  // 修改A1单元格文本
  firstSheet.getRangeByName('A1').setText('已通过Xlsio修改');
  // 设置B2单元格数值
  firstSheet.getRangeByName('B2').setNumber(2024);

  // 5. 保存修改后的文件(可覆盖原文件或指定新路径)
  final updatedFileBytes = workbook.saveAsStream();
  await File(targetFilePath).writeAsBytes(updatedFileBytes);

  // 6. 释放Workbook资源,避免内存泄漏
  workbook.dispose();

  print('Excel文件操作完成');
}

关键注意事项

  • 路径处理:桌面应用支持直接使用绝对路径;若需获取系统标准目录(如文档、下载目录),可搭配path_provider包调用getApplicationDocumentsDirectory()等方法获取路径
  • 格式兼容:Xlsio支持.xlsx和.xls格式,确保目标文件格式符合要求
  • 资源管理:操作完成后必须调用workbook.dispose()释放内存资源

内容的提问来源于stack exchange,提问作者Broteen Das

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 00:10:32