Browse Source

fix(pivot table show error): when column area have field and row area is null,pivot table show error

master
wbfsa 5 years ago
parent
commit
04bc51cf8d
  1. 24
      src/controllers/pivotTable.js
  2. 7
      src/global/array.js
  3. 2
      src/locale/en.js

24
src/controllers/pivotTable.js

@ -2899,7 +2899,7 @@ const pivotTable = {
} }
let datacoltitle_index = datacoltitle; let datacoltitle_index = datacoltitle;
datacoltitle = luckysheetArray.transpose(datacoltitle); datacoltitle = luckysheetArray.transpose(datacoltitle, false);
let valuenslen = values.length == 0 ? 0 : 1; let valuenslen = values.length == 0 ? 0 : 1;
let rowLen = (datacoltitle.length == 0 ? valuenslen : datacoltitle.length) + (datarowtitle.length == 0 ? valuenslen : datarowtitle.length), colLen = (datacoltitle.length == 0 ? valuenslen : datacoltitle[0].length) + (datarowtitle.length == 0 ? valuenslen : datarowtitle[0].length); let rowLen = (datacoltitle.length == 0 ? valuenslen : datacoltitle.length) + (datarowtitle.length == 0 ? valuenslen : datarowtitle.length), colLen = (datacoltitle.length == 0 ? valuenslen : datacoltitle[0].length) + (datarowtitle.length == 0 ? valuenslen : datarowtitle[0].length);
@ -3015,6 +3015,28 @@ const pivotTable = {
retdata[0][0] = values[0].fullname; retdata[0][0] = values[0].fullname;
retdata.splice(column.length, 1); retdata.splice(column.length, 1);
} }
else if(values.length == 1 && column.length > 0){
// 0: (6) ["English", "foreign language", "mathematics", "science", "Sum", undefined]
// 1: (6) ["CountA:score", "CountA:score", "CountA:score", "CountA:score", "CountA:score", undefined]
// 2: (6) [3, 3, 3, 3, 12, ""]
//The above format does not meet viewing habits,Process retdata into the correct format
let titleRow = retdata.splice(column.length, 1);
let newRetdata = [];
for(let r=0;r<retdata.length;r++){
let row = [];
if(r==retdata.length-1){
row.push(titleRow[0][0]);
}
else{
row.push("");
}
for(let c=0;c<retdata[r].length-1;c++){
row.push(retdata[r][c]);
}
newRetdata.push(row);
}
retdata = newRetdata;
}
_this.pivotDatas = retdata; _this.pivotDatas = retdata;

7
src/global/array.js

@ -1,7 +1,7 @@
import { getcellvalue } from './getdata'; import { getcellvalue } from './getdata';
const luckysheetArray = { const luckysheetArray = {
transpose: function (getdata) { transpose: function (getdata, useGetcellValue=true) {
let arr = []; let arr = [];
if (getdata.length == 0) { if (getdata.length == 0) {
return []; return [];
@ -16,8 +16,13 @@ const luckysheetArray = {
for (let r = 0; r < getdata.length; r++) { for (let r = 0; r < getdata.length; r++) {
let value = ""; let value = "";
if (getdata[r] != null && getdata[r][c] != null) { if (getdata[r] != null && getdata[r][c] != null) {
if(useGetcellValue){
value = getcellvalue(r, c, getdata); value = getcellvalue(r, c, getdata);
} }
else{
value = getdata[r][c];
}
}
a.push(value); a.push(value);
} }
arr.push(a); arr.push(a);

2
src/locale/en.js

@ -951,7 +951,7 @@ export default {
titleSelectionDataRange:"Select range", titleSelectionDataRange:"Select range",
titleDataRange:"Data range", titleDataRange:"Data range",
valueSum:"Sum", valueSum:"SUM",
valueStatisticsSUM:"Sum", valueStatisticsSUM:"Sum",
valueStatisticsCOUNT:"Count", valueStatisticsCOUNT:"Count",

Loading…
Cancel
Save