如何在flutter中显示excel文件

问题描述 投票:0回答:2

我正在使用excel包来查看excel文件,但很困惑如何在整个正文中显示文件,有人可以帮助我吗

var file = "HERE IS THE FILE PATH";
var bytes = File(file).readAsBytesSync();
var excel = Excel.decodeBytes(bytes);

for (var table in excel.tables.keys) {
  print(table); //sheet Name
  print(excel.tables[table].maxCols);
  print(excel.tables[table].maxRows);
  for (var row in excel.tables[table].rows) {
    print("$row");
  }
}

我传递文件路径,但如何在整个正文中显示它

flutter dart flutter-dependencies flutter-test dart-null-safety
2个回答
0
投票

这应该有效:

List<String> rowdetail = [];

_importFromExcel() async {
  var file = "Your file path";
  var bytes = File(file).readAsBytesSync();
  var excel = Excel.decodeBytes(bytes);

  for (var table in excel.tables.keys) {
    for (var row in excel.tables[table]!.rows) {
      print("row: ${row.value}");
      rowdetail.add(row.value);
    }
  }
}

0
投票

解析Excel后可以这样查看,但是如果有复杂的excel文件,则无法解析

Widget _excelViewer() {
var table = _excel.tables.keys.first; 
var rows = _excel.tables[table]!.rows;

return SingleChildScrollView(
  scrollDirection: Axis.horizontal,
  child: DataTable(
    columns: _createColumns(rows.first),
    rows: _createRows(rows),
  ),
);
}

 List<DataColumn> _createColumns(List<dynamic> headerRow) {
return headerRow.map((cell) => DataColumn(label: 
Text(cell.toString()))).toList();
}

List<DataRow> _createRows(List<List<dynamic>> rows) {
return rows.skip(1) //bacause first row is header
    .map((row) => DataRow(
          cells: row.map((cell) => 
DataCell(Text(cell.toString()))).toList(),
         ))
     .toList();
}
© www.soinside.com 2019 - 2024. All rights reserved.