最近我得到这个错误在flutter试图测试如果Excel文件被创建或没有。事情是,我在一个最古老的项目中使用了相同的代码,工作得很好。我正在尝试使用网络设备,所以当我按下按钮时,Excel文件将被创建,下载将开始。
这是我的代码:
import 'package:excel/excel.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView(
children: [
ElevatedButton(
child: Text(
"Save File",
),
onPressed: () {
final excell = Excel.createExcel();
final sheet = excell['Assets'];
var fileBytes = excell.save(fileName: "My_File_Name.xlsx");
},
),
],
)
);
}
}
这是当我按下按钮时的错误:
EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════ 处理手势时抛出以下TypeErrorImpl:预期值为'List'类型,但得到一个'Null'类型
处理程序:"onTap"识别器:TapGesture识别器#f5722 ════════════════════════════════════════════════════════════════════════════════════════════════════
看起来您正在使用第三方包Excel。您所描述的问题已在最新的空安全分支中修复。
要在项目中使用最新的空安全分支,请在pubspec. yaml中使用它:
excel:
git:
url: https://github.com/justkawal/excel.git
ref: null-safety
请注意,这可能不是一个稳定的分支/版本,但会暂时解决您的问题。