Last active
February 3, 2021 00:45
-
-
Save VictorWesterlund/a2d5501b841266f00c5490b2f47bfb27 to your computer and use it in GitHub Desktop.
Create Dynamics AX compatible spreadsheet from Akeneo PIM export
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Convert Akeneo Excel to AX Import | |
// <p> | |
function AXFORMAT_PARAGRAPH(input) { | |
function wrap(value) { | |
return `<p>${value}</p>`; | |
} | |
return Array.isArray(input) ? input.map(row => row.map(cell => { | |
if(!cell) { | |
return ""; | |
} | |
return wrap(cell); | |
})) : wrap(input); | |
} | |
function AXFORMAT_LI(input) { | |
function wrap(value) { | |
return `• ${value}<br>`; | |
} | |
return Array.isArray(input) ? input.map(row => row.map(cell => { | |
if(!cell || cell == 0) { | |
return ""; | |
} | |
return wrap(cell); | |
})) : wrap(input); | |
} | |
function AXFORMAT_BULLETS() { | |
function wrap(value) { | |
return `• ${value}<br>`; | |
} | |
let i = 0; | |
return Array.isArray(arguments[0]) ? arguments[0].map(row => row.map(cell => { | |
let size = 0; | |
let out = ""; | |
// Iterate each bullet range | |
for(let argument of Object.values(arguments)) { | |
const value = argument[i]; | |
if(!value) { | |
continue; | |
} | |
out += wrap(value); | |
size++; | |
} | |
if(size > 0) { | |
cell = AXFORMAT_PARAGRAPH(out); | |
} | |
return cell; | |
})) : "Invalid range"; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=ARRAYFORMULA( | |
AXFORMAT_PARAGRAPH(Input!FC2:FC)& | |
AXFORMAT_PARAGRAPH(Input!KT2:KT)& | |
AXFORMAT_PARAGRAPH(AXFORMAT_LI(Input!Q2:Q)&AXFORMAT_LI(Input!V2:V)&AXFORMAT_LI(Input!AA2:AA)&AXFORMAT_LI(Input!AF2:AF)&AXFORMAT_LI(Input!AK2:AK)&AXFORMAT_LI(Input!AP2:AP)&AXFORMAT_LI(Input!AU2:AU)&AXFORMAT_LI(Input!AZ2:AZ)&AXFORMAT_LI(Input!BE2:BE)&AXFORMAT_LI(Input!BJ2:BJ))) | |
=ARRAYFORMULA( | |
AXFORMAT_PARAGRAPH(Input!FD2:FD)& | |
AXFORMAT_PARAGRAPH(Input!KU2:KU)& | |
AXFORMAT_PARAGRAPH(AXFORMAT_LI(Input!R2:R)&AXFORMAT_LI(Input!W2:W)&AXFORMAT_LI(Input!AB2:AB)&AXFORMAT_LI(Input!AG2:AG)&AXFORMAT_LI(Input!AL2:AL)&AXFORMAT_LI(Input!AQ2:AQ)&AXFORMAT_LI(Input!AX2:AX)&AXFORMAT_LI(Input!BA2:BA)&AXFORMAT_LI(Input!BF2:BF)&AXFORMAT_LI(Input!BK2:BK))) | |
=ARRAYFORMULA( | |
AXFORMAT_PARAGRAPH(Input!FE2:FE)& | |
AXFORMAT_PARAGRAPH(Input!KV2:KV)& | |
AXFORMAT_PARAGRAPH(AXFORMAT_LI(Input!S2:S)&AXFORMAT_LI(Input!X2:X)&AXFORMAT_LI(Input!AC2:AC)&AXFORMAT_LI(Input!AH2:AH)&AXFORMAT_LI(Input!AM2:AM)&AXFORMAT_LI(Input!AR2:AR)&AXFORMAT_LI(Input!AY2:AY)&AXFORMAT_LI(Input!BB2:BB)&AXFORMAT_LI(Input!BG2:BG)&AXFORMAT_LI(Input!BL2:BL))) | |
=ARRAYFORMULA( | |
AXFORMAT_PARAGRAPH(Input!FF2:FF)& | |
AXFORMAT_PARAGRAPH(Input!KW2:KW)& | |
AXFORMAT_PARAGRAPH(AXFORMAT_LI(Input!T2:T)&AXFORMAT_LI(Input!Y2:Y)&AXFORMAT_LI(Input!AD2:AD)&AXFORMAT_LI(Input!AI2:AI)&AXFORMAT_LI(Input!AN2:AN)&AXFORMAT_LI(Input!AS2:AS)&AXFORMAT_LI(Input!AZ2:AZ)&AXFORMAT_LI(Input!BC2:BC)&AXFORMAT_LI(Input!BH2:BH)&AXFORMAT_LI(Input!BM2:BM))) | |
=ARRAYFORMULA( | |
AXFORMAT_PARAGRAPH(Input!FG2:FG)& | |
AXFORMAT_PARAGRAPH(Input!KX2:KX)& | |
AXFORMAT_PARAGRAPH(AXFORMAT_LI(Input!U2:U)&AXFORMAT_LI(Input!Z2:Z)&AXFORMAT_LI(Input!AE2:AE)&AXFORMAT_LI(Input!AJ2:AJ)&AXFORMAT_LI(Input!AO2:AO)&AXFORMAT_LI(Input!AT2:AT)&AXFORMAT_LI(Input!BA2:BA)&AXFORMAT_LI(Input!BD2:BD)&AXFORMAT_LI(Input!BI2:BI)&AXFORMAT_LI(Input!BN2:BN))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment