我正在嘗試實作一個功能,該功能可以從手機存盤中選擇一個 excel 檔案,編輯一些值,然后最后使用excel dart package保存它。我的功能:
Future<void> createExcel() async {
File file = await selectFile() //this is working fine
//setting some configurations for excel
var bytes = file!.readAsBytesSync();
var excel = Excel.decodeBytes(bytes);
Sheet sheetObject = excel['Sheet1'];
//Updating excel values logic
for(int i = 1; i<1000; i){
var cell = sheetObject.cell(CellIndex.indexByString("A$i"));
cell.value = 8; // dynamic values support provided;
}
//saving excel
excel.encode()!.then((onValue) { //this line is giving error: "The method 'then' isn't defined for the type 'List'. "
File(join(file!.path))
..createSync(recursive: true)
..writeAsBytesSync(onValue);
});
}
我無法使用.then( )和excel.encode()有什么辦法可以解決這個問題嗎?
uj5u.com熱心網友回復:
聽起來像...您的編碼方法回傳 aLIST而不是Future<List>...所以將您的 excel.encode 直接放在您的 writeAsBytesSync 方法中
像這樣:
Future<void> createExcel() async {
File file = await selectFile() //this is working fine
//setting some configurations for excel
var bytes = file!.readAsBytesSync();
var excel = Excel.decodeBytes(bytes);
Sheet sheetObject = excel['Sheet1'];
//Updating excel values logic
for(int i = 1; i<1000; i){
var cell = sheetObject.cell(CellIndex.indexByString("A$i"));
cell.value = 8; // dynamic values support provided;
}
//saving excel
File(join(file!.path))
..createSync(recursive: true)
..writeAsBytesSync(excel.encode()!);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/427719.html
