Sencha grid의 내용 csv로 저장하기
2025. 1. 15. 22:53ㆍJavascript/Sencha
tbar: [
{
text: 'Export to CSV',
handler: function() {
const grid = this.up('grid'); // Get reference to the grid
const store = grid.getStore(); // Get the grid's store
// Filter columns to exclude those with dataIndex '_$_'
const columns = grid.getColumns().filter(column => column.dataIndex !== '_$_');
// Extract column headers
const headers = columns.map(column => column.text).join(',');
// Extract store data
const rows = [];
store.each(record => {
const row = columns.map(column => record.get(column.dataIndex));
rows.push(row.join(','));
});
// Combine headers and rows
const csvContent = [headers, ...rows].join('\n');
// Add UTF-8 BOM for Hangul support
const bom = '\uFEFF';
const csvWithBom = bom + csvContent;
// Trigger download
const blob = new Blob([csvWithBom], { type: 'text/csv;charset=utf-8;' });
const link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = 'grid_data.csv'; // Set the download filename
link.click();
}
}
]
한글 깨지는 문제 해결
// Add UTF-8 BOM for Hangul support
const bom = '\uFEFF';
const csvWithBom = bom + csvContent;
row의 상태값 컬럼 제거하기
// Filter columns to exclude those with dataIndex '_$_'
const columns = grid.getColumns().filter(column => column.dataIndex !== '_$_');
'Javascript > Sencha' 카테고리의 다른 글
Sencha store의 value에 여러 건이 들어갈 경우 처리 (0) | 2025.01.15 |
---|---|
Sencha grid csv 데이터 로딩 (0) | 2025.01.15 |
Sencha grid header filter (0) | 2025.01.15 |
Sencha grid의 특정 header의 filter 제거하기 (0) | 2025.01.11 |
AUIGrid 선택된 row 및 cell 정보 가져오기 (0) | 2025.01.11 |