FileSaver.js을 사용하여 필터링 된 테이블 데이터 dc.js를 내보내려고합니다.dc.js filesaver.js를 사용하여 테이블 내보내기 필터링
아래 코드를 사용하여 this을 기반으로 모든 필드를 내보내는 것만 제외하면 괜찮습니다. 그러나 필자는 테이블의 특정 필드가 필요하지만 반면 계산 된 필드는 소수에 불과합니다.
d3.select('#download')
.on('click', function() {
var blob = new Blob([d3.csv.format(dateDim.top(Infinity))], {type: "text/csv;charset=utf-8"});
saveAs(blob, DateT + '.csv');
});
내가 그 차원이 아니라 테이블을 가리킬 수있는 방법이 있나요?
감사합니다.
편집 :
d3.select('#download')
.on('click', function() {
var data = MYTABLEDIM.top(Infinity);
{
data = data.map(function(d) {
var row = {};
MYTABLENAME.columns().forEach(function(c) {
row[MYTABLENAME._doColumnHeaderFormat(c)] = MYTABLENAME._doColumnValueFormat(c, d);
});
return row;
});
}
var blob = new Blob([d3.csv.format(data)], {type: "text/csv;charset=utf-8"});
saveAs(blob, 'data.csv');
});
감사합니다. Gordon, 정말 흥미로운 기능입니다. 시도했지만 두 옵션 모두 동일한 데이터를 내 보냅니다. '테이블'에 대한 4 개의 참조는 모두 일반적인 API 테이블 또는 일부/모두가 우리가 데이터를 가져 오려고하는 var '테이블'을 참조합니다. – stutray
흠 당신에게 효과가 없었습니다. . 예제 페이지에서 기대하는 바를 수행합니까? 표는 여기에있는 dc 차트를 참조하지만 라디오 버튼 옵션 이름으로도 사용했습니다. 당신은 아마 그것 주위에'if'를 원하지 않을 것입니다, 그것은 예제를위한 것입니다. – Gordon
이제 작동합니다. 문제는 제가 테이블에 대한 참조를 변경하지 않았다는 것입니다. 편집의 세부 사항. Header 이름을 지정하는 방법은 기본적으로 테이블 정의의 이름을 사용합니다. 다시 한번 감사드립니다. – stutray