Skip to content

Instantly share code, notes, and snippets.

@VictorWesterlund
Last active February 3, 2021 00:45
Show Gist options
  • Save VictorWesterlund/a2d5501b841266f00c5490b2f47bfb27 to your computer and use it in GitHub Desktop.
Save VictorWesterlund/a2d5501b841266f00c5490b2f47bfb27 to your computer and use it in GitHub Desktop.
Create Dynamics AX compatible spreadsheet from Akeneo PIM export
// 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";
}
=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