답변 감사 드립니다.
2가지 질문이 있는데 해당 아래 부분 문의 드립니다.
1. format g10으로 주니 화면과 다르게 위즈모 엑셀 다운로드 할때 뒤에 0000 이런형식으로 붙는데 해당 부분에 대해서는 어떻게 처리를 해야 하나요?
2. format g10으로 화면에서 나온 sum값하고 실제 계산한 값이 소수점 5자리 이상 넘어가면 차이가 발생하는데 해당 부분은 어떻게 해결 해야 하나요?
3. 추가로 질문이 있는데 format을 찾아보니 n*,,이 1백만건으로 최대 인데 혹시 1억건으로 표시할수 있는 방법이 있을까요?
위 부분에 대해서 소스도 보내 드립니다.
<template>
<div class="container-fluid">
<wj-flex-grid
:itemsSource="dataView" :allowMerging="'Cells'" :alternatingRowStep="0"
:initialized="initializedGrid">
<wj-flex-grid-column v-for="(item, index) in dataColList" :key="item"
:binding="item.binding" :header="item.header" :aggregate="item.aggregate ? item.aggregate : 'None'"
:allowMerging="item.allowMerging ? item.allowMerging : false"
:format="item.format">
</wj-flex-grid>
<button @click="search()">Search</button>
<button @click="down()">Down</button>
</div>
</template>
<script>
import "@grapecity/wijmo.styles/wijmo.css";
import "bootstrap.css";
import Vue from "vue";
import "@grapecity/wijmo.vue2.grid";
import * as wjCore from "@grapecity/wijmo";
import * as wjcGrid from '@grapecity/wijmo.grid';
import * as wjcGridXlsx from '@grapecity/wijmo.grid.xlsx';
import { getData } from "./data";
new Vue({
el: "#app",
data: function() {
return {
data: getData(),
dataGrid: null,
dataColList: [],
dataList: [
{country: 'US', product: 'Phone', sales: 1.2340000154, expenses: 20.15142},
{country: 'US', product: 'Phone', sales: 21.154112154, expenses: 100},
{country: 'UK', product: 'Phone1', sales: 0, expenses: 150.154},
{country: 'UK', product: 'Phone1', sales: 0.1548000145, expenses: 0.000002},
],
dataView: new wjCore.CollectionView(),
};
},
methods:{
initializedGrid(flex){
this.dataGrid = flex;
},
search(){
//footer clear
this.dataGrid.columnFooters.rows.clear();
//data column insert
const inColList = [
{binding: 'country', header: 'Country', allowMerging: true},
{binding: 'product', header: 'Product', allowMerging: true},
{binding: 'sales', header: 'Sales', format: 'g10', aggregate: 'Sum'},
{binding: 'expenses', header: 'Expenses', format: 'g10', aggregate: 'Sum'},
];
this.dataColList = inColList;
//data insert
this.dataView.sourceCollection = this.dataList;
this.dataView.refresh();
//footer column
this.dataGrid.columnFooters.rows.push(new wjcGrid.GroupRow());
this.dataGrid.columnFooters.setCellData(0, 0, 'Σ');
},
down(){
wjcGridXlsx.FlexGridXlsxConverter.saveAsync(
this.dataGrid,
{
includeColumnHeaders: true,
includeStyles: false,
formatItem: null
},
'FlexGrid.xlsx'
);
},
}
});
</script>
<style>
.wj-flexgrid {
max-height: 250px;
margin: 10px 0;
}
body {
margin-bottom: 20px;
}
</style>