如何用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
相关产品推荐
相关产品推荐

