setArray方法在从当前活动的单元格开始填充数据,如果活动的单元格是在表格默认的行/列边缘,数据很多的时候,会出现数据展示不完整,如图
- var sheet = spread.getActiveSheet();
- sheet.setColumnWidth(1, 100);
- // 这是后端返回的原本的数据格式
- let data = [
- [
- {
- 'value': 'last_upload_time(year)',
- 'type': 'ROW_HEADER_HEADER',
- 'properties': {
- 'hierarchy': '[f_drug_sales].[last_upload_time]',
- 'dimension': 'f_drug_sales',
- 'level': '[f_drug_sales].[last_upload_time].[last_upload_time(year)]',
- },
- },
- {
- 'value': '金额',
- 'type': 'COLUMN_HEADER',
- 'properties': {
- 'uniquename': '[Measures].[金额]',
- 'hierarchy': '[Measures]',
- 'dimension': 'Measures',
- 'level': '[Measures].[MeasuresLevel]',
- },
- },
- {
- 'value': '数量',
- 'type': 'COLUMN_HEADER',
- 'properties': {
- 'uniquename': '[Measures].[数量]',
- 'hierarchy': '[Measures]',
- 'dimension': 'Measures',
- 'level': '[Measures].[MeasuresLevel]',
- },
- },
- ],
- [
- {
- 'value': '2016',
- 'type': 'ROW_HEADER',
- 'properties': {
- 'uniquename': '[f_drug_sales].[last_upload_time].[2016]',
- 'hierarchy': '[f_drug_sales].[last_upload_time]',
- 'dimension': 'f_drug_sales',
- 'level': '[f_drug_sales].[last_upload_time].[last_upload_time(year)]',
- },
- },
- {
- 'value': '20,897,646.95',
- 'type': 'DATA_CELL',
- 'properties': {
- 'position': '0:0',
- 'raw': '2.089764695E7',
- },
- },
- {
- 'value': '7,036,702.00',
- 'type': 'DATA_CELL',
- 'properties': {
- 'position': '1:0',
- 'raw': '7036702.0',
- },
- },
- ],
- [
- {
- 'value': '2015',
- 'type': 'ROW_HEADER',
- 'properties': {
- 'uniquename': '[f_drug_sales].[last_upload_time].[2015]',
- 'hierarchy': '[f_drug_sales].[last_upload_time]',
- 'dimension': 'f_drug_sales',
- 'level': '[f_drug_sales].[last_upload_time].[last_upload_time(year)]',
- },
- },
- {
- 'value': '9,671,333.01',
- 'type': 'DATA_CELL',
- 'properties': {
- 'position': '0:1',
- 'raw': '9671333.01',
- },
- },
- {
- 'value': '3,527,057.00',
- 'type': 'DATA_CELL',
- 'properties': {
- 'position': '1:1',
- 'raw': '3527057.0',
- },
- },
- ],
- [
- {
- 'value': '2015',
- 'type': 'ROW_HEADER',
- 'properties': {
- 'uniquename': '[f_drug_sales].[last_upload_time].[2015]',
- 'hierarchy': '[f_drug_sales].[last_upload_time]',
- 'dimension': 'f_drug_sales',
- 'level': '[f_drug_sales].[last_upload_time].[last_upload_time(year)]',
- },
- },
- {
- 'value': '9,564,004.34',
- 'type': 'DATA_CELL',
- 'properties': {
- 'position': '0:2',
- 'raw': '9564004.34',
- },
- },
- {
- 'value': '3,474,456.00',
- 'type': 'DATA_CELL',
- 'properties': {
- 'position': '1:2',
- 'raw': '3474456.0',
- },
- },
- ],
- [
- {
- 'value': '2015',
- 'type': 'ROW_HEADER',
- 'properties': {
- 'uniquename': '[f_drug_sales].[last_upload_time].[2015]',
- 'hierarchy': '[f_drug_sales].[last_upload_time]',
- 'dimension': 'f_drug_sales',
- 'level': '[f_drug_sales].[last_upload_time].[last_upload_time(year)]',
- },
- },
- {
- 'value': '9,307,649.74',
- 'type': 'DATA_CELL',
- 'properties': {
- 'position': '0:3',
- 'raw': '9307649.74',
- },
- },
- {
- 'value': '3,489,217.00',
- 'type': 'DATA_CELL',
- 'properties': {
- 'position': '1:3',
- 'raw': '3489217.0',
- },
- },
- ],
- [
- {
- 'value': '2014',
- 'type': 'ROW_HEADER',
- 'properties': {
- 'uniquename': '[f_drug_sales].[last_upload_time].[2014]',
- 'hierarchy': '[f_drug_sales].[last_upload_time]',
- 'dimension': 'f_drug_sales',
- 'level': '[f_drug_sales].[last_upload_time].[last_upload_time(year)]',
- },
- },
- {
- 'value': '9,113,477.66',
- 'type': 'DATA_CELL',
- 'properties': {
- 'position': '0:4',
- 'raw': '9113477.66',
- },
- },
- {
- 'value': '3,891,354.00',
- 'type': 'DATA_CELL',
- 'properties': {
- 'position': '1:4',
- 'raw': '3891354.0',
- },
- },
- ]
- ];
- //处理后台返回的数据
- var newData = [];
- for(let item of data){
- let oneData = [];
- for(let oneItem of item){
- oneItem = oneItem.value;
- oneData.push(oneItem);
- }
- newData.push(oneData);
- }
- console.log(newData);
- $("#btn4").click(function () {
- var sheet = spread.getActiveSheet();
- var seles = sheet.getSelections();
- if(seles.length > 0){
- var range = seles[0];
- var row = range.row;
- var col = range.col;
- var rowCount = range.rowCount;
- var colCount = range.colCount;
- sheet.suspendPaint();
- for(var i=row; i < row+rowCount; i++){
- for(var j=col; j<col+colCount; j++){
- sheet.setArray(i,j,newData);
- }
- }
- sheet.resumePaint();
- }
- });
复制代码
|