준비물
excel 패키지
$ flutter pub add excel
Dart
복사
HOW TO
1. 엑셀 파일 객체 생성
Excel excel = Excel.createExcel();
Sheet sheetObject = excel['Sheet1']; // 열 제목 추가
Dart
복사
2. 엑셀 파일 내에 열 제목 추가
List<String> columnTitles = [
'ID',
'Name',
'Dancer Name',
'Contact',
'Enrolled At'
];
for (int i = 0; i < columnTitles.length; i++) {
var cell = sheetObject
.cell(CellIndex.indexByColumnRow(columnIndex: i, rowIndex: 0));
cell.value = columnTitles[i];
}
Dart
복사
3. 데이터 추가
for (int row = 0; row < eventEnrollments.length; row++) {
EventEnrollment enrollment = eventEnrollments[row];
// EventEnrollment 객체를 Excel '행'(row)으로 변환
List<dynamic> rowData = enrollment.toRowData();
// '행'을 셀에 추가해준다.
for (int col = 0; col < rowData.length; col++) {
var cell = sheetObject.cell(
CellIndex.indexByColumnRow(columnIndex: col, rowIndex: row + 1));
cell.value = rowData[col];
}
}
Dart
복사
4. 엑셀 파일 저장
4-1. 엑셀 파일 저장하는 함수 생성
Future<String?> saveExcelFile(Excel excel) async {
// 외부 저장소 디렉토리 경로 가져오기
Directory? directory = await getExternalStorageDirectory();
if (directory != null) {
String filePath = '${directory.path}/my_excel_file.xlsx';
// Excel 파일 저장
File file = File(filePath);
await file.writeAsBytes(excel.encode()!);
return filePath;
}
return null;
}
Dart
복사
4-2. 엑셀 파일 저장
saveExcelFile(excel).then((value) {
if (value != null) {
print('Excel 파일이 저장되었습니다: $value');
} else {
print('Excel 파일 저장에 실패하였습니다.');
}
});
Dart
복사
4+ . [WEB] 엑셀 파일 저장
excel.save(fileName: 'test.xlsx');
Dart
복사
웹에서 사용할 때는 매우 간단하다.