Flutter 애플리케이션에서 DataTable을 사용하여 표 형식으로 데이터를 표시하는 경우가 많습니다. 사용자가 표 데이터를 Excel 파일로 내보내기를 원할 수도 있습니다. 이 포스트에서는 Flutter 애플리케이션에서 DataTable 데이터를 Excel 파일로 내보내는 방법에 대해 알아보겠습니다.
DataTable에서 데이터 가져오기
우선 DataTable에서 표시되는 데이터를 가져와야 합니다. 다음은 간단한 예제 코드입니다.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyDataTable(),
);
}
}
class MyDataTable extends StatelessWidget {
@override
Widget build(BuildContext context) {
return DataTable(
columns: const <DataColumn>[
DataColumn(
label: Text('Name'),
),
DataColumn(
label: Text('Age'),
),
],
rows: const <DataRow>[
DataRow(
cells: <DataCell>[
DataCell(Text('John')),
DataCell(Text('30')),
],
),
DataRow(
cells: <DataCell>[
DataCell(Text('Alice')),
DataCell(Text('25')),
],
),
],
);
}
}
이 예제에서는 DataTable을 사용하여 이름과 나이로 구성된 간단한 데이터를 표시합니다.
데이터를 Excel 파일로 내보내기
이제 DataTable에서 가져온 데이터를 Excel 파일로 내보내는 방법에 대해 알아보겠습니다.
import 'package:flutter/material.dart';
import 'package:excel/excel.dart';
import 'dart:io';
import 'package:path_provider/path_provider.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyDataTable(),
);
}
}
class MyDataTable extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {
_exportToExcel();
},
child: Text('Export to Excel'),
),
DataTable(
columns: const <DataColumn>[
DataColumn(
label: Text('Name'),
),
DataColumn(
label: Text('Age'),
),
],
rows: const <DataRow>[
DataRow(
cells: <DataCell>[
DataCell(Text('John')),
DataCell(Text('30')),
],
),
DataRow(
cells: <DataCell>[
DataCell(Text('Alice')),
DataCell(Text('25')),
],
),
],
),
],
);
}
_exportToExcel() async {
var excel = Excel.createExcel();
Sheet sheetObject = excel['Sheet1'];
sheetObject.appendRow(['Name', 'Age']);
sheetObject.appendRow(['John', '30']);
sheetObject.appendRow(['Alice', '25']);
var bytes = excel.encode();
String dir = (await getApplicationDocumentsDirectory()).path;
String path = '$dir/example.xlsx';
File(path).writeAsBytes(bytes);
}
}
위의 코드에서는 excel 패키지를 사용하여 Excel 파일을 생성하고, DataTable에서 가져온 데이터를 해당 파일에 작성합니다. 이후, 내보낼 Excel 파일의 경로를 사용하여 로컬 디바이스에 저장합니다.
이제 위 코드를 사용하여 Flutter 애플리케이션에서 DataTable 데이터를 Excel 파일로 내보낼 수 있습니다.
위 코드의 exportToExcel
메서드에서는 Excel 파일로 데이터를 내보내는 과정을 수행합니다. 그리고 메인 위젯에는 ‘Export to Excel’ 버튼을 표시하여 사용자가 해당 기능을 실행할 수 있도록 합니다.
이제 Flutter 애플리케이션에서 DataTable 데이터를 Excel 파일로 내보내는 방법에 대한 이해를 얻었습니다. 원하는 형식으로 데이터를 표현하여 애플리케이션의 사용자 경험을 향상시키는 데 도움이 될 것입니다.