使用这个https://pub.dev/packages/gsheets
我能够插入一行,但想一次添加多行。不知道为什么谷歌表格没有填满多行
home.dart
for (var i = 0; i < gsIndex; i++)
{
Map<String, dynamic> pStatus =
{
ParadeState.rank : usersList[i]['RANK'],
ParadeState.name : usersList[i]['NAME'],
ParadeState.morningState : dropdownAMValue,
ParadeState.afternoonState : dropdownPMValue,
ParadeState.date : formatted,
};
print(pStatus);
await UserSheetsApi.insert([pStatus]);
控制台输出:
UserSheetsapi.dart
static Future init() async {
try {
final spreadsheet = await _gSheets.spreadsheet(_spreadSheetID);
_userSheet = await _getWorkSheet(spreadsheet, title: 'Sheet1');
final firstRow = ParadeState.getPS();
_userSheet!.values.insertRow(1, firstRow);
} catch (e) {
print('Init Error: $e');
}
}
static Future<Worksheet> _getWorkSheet(
Spreadsheet spreadsheet, {
required String title,
}) async {
try {
return await spreadsheet.addWorksheet(title);
} catch (e) {
return spreadsheet.worksheetByTitle(title)!;
}
}
static insert(List<Map<String, dynamic>> rowList)
{
_userSheet!.values.map.appendRows(rowList);
}
结果:
参加聚会迟到了,所以希望您能够得到这个问题的答案。
您拥有的代码,您将数据作为列表而不是地图发送到 Google 表格。
您需要将 [ ] 替换为 { }。像这样:
for (var i = 0; i < gsIndex; i++) {
Map<String, dynamic> pStatus =
{
ParadeState.rank : usersList[i]['RANK'],
ParadeState.name : usersList[i]['NAME'],
ParadeState.morningState : dropdownAMValue,
ParadeState.afternoonState : dropdownPMValue,
ParadeState.date : formatted,
};
print(pStatus);
await UserSheetsApi.insert({pStatus});
}
上面还假设
gsIndex
是一个整数。如果您需要列表中的项目数,请使用 gsIndex.length
。
希望这有帮助。
我也有同样的问题,请问你找到答案了吗,希望你能帮助我?