Cómo leer datos .xlsx y enviarlos a la matriz en el script .js para photoshop defaultkrt0iuh8hlot
Estoy construyendo algo de automatización para el trabajo y he alcanzado mi límite de conocimiento cómodo en secuencias de comandos.
Tengo un archivo .xlsx donde:
la columna A1 a A20 representa un diseño que hemos creado.
la columna B1 a B20 contiene listas de plantillas de fondo de color para cada diseño en la columna A:
También tengo una carpeta con archivos .png cuyos nombres de archivo coinciden exactamente con los nombres dados en la columna A.
Mi secuencia de comandos utiliza el procesamiento por lotes de Photoshop para abrir un archivo (por ejemplo: XY-111.png) a la vez en esa carpeta,
coloque ese .png en todas las plantillas (por ejemplo, Temp1, Temp3, Temp5) y guarde cada una como .jpg (usando un script diferente).
Captura de pantalla del código VS
El código anterior FUNCIONA, pero en lugar de
excelArray.push(Temp1, Temp2, Temp3)
Quiero enviar los datos de la columna B a la matriz SOLO si app.documents[0] coincide con la columna A.
/////////////////////////////////////////////////// /////////////////////////////////////////////////
El código:
#target photoshop var Temp1 = "/Temp1.psd" var Temp2 = "/Temp2.psd" var Temp3 = "/Temp3.psd" var Temp4 = "/Temp4.psd" var Temp5 = "/Temp5.psd" var Temp6 = "/Temp6.psd" var Temp7 = "/Temp7.psd" var Temp8 = "/Temp8.psd" var Temp9 = "/Temp9.psd" var Temp10 = "/Temp10.psd" var picForSim = app.documents[0]; var excelArray = []; excelArray.push(Temp1, Temp2, Temp3); for (var i = 0; i < excelArray.length; i++){ if (picForSim.name.charAt(0) === "W"){ //alert(excelArray[i]) app.open(new File(excelArray[i])); app.doAction(("WGARMENTS-ArtPlace"), ("ProductActions.ATN")) } else { //alert(excelArray[i]) app.open(new File(excelArray[i])); app.doAction(("GARMENTS-ArtPlace"), ("ProductActions.ATN")) } }/////////////////////////////////////////////////// /////////////////////////////////////////////////// ////////////////
Tomé un tutorial de node.js y siento que entiendo el concepto de obtener datos de Excel, pero tengo algunos problemas para conectar los puntos y obtener la información en mi secuencia de comandos.
¡Cualquier ayuda sería apreciada!
Si su archivo .xlxs se exporta como .csv, se verá así:
WXY-111,"Temp1, Temp2, Temp3, Temp4" WXY-222,"Temp2, Temp3, Temp4, Temp5" WXY-333,"Temp3, Temp4, Temp5, Temp6" YX-111,"Temp4, Temp5, Temp6, Temp7" XY-222,"Temp5, Temp6, Temp7, Temp8" XY-333,"Temp6, Temp7, Temp8, Temp9"Puedes leer el archivo de texto en Photoshop de esta manera
// Reference to the csv file var csvFile = "D:\\temp\\mycsv.csv"; // change this! // automatically read in first file var theFile = new File(csvFile); //read in file var csvArr = []; // array to store CSV var l = 0; var csvFile = new File(theFile); csvFile.open('r'); while(!csvFile.eof) { var line = csvFile.readln(); if (line != null && line.length >0) { csvArr[l++] = line; } } csvFile.close(); // create an array so we can use the data var textArr = []; var msg = ""; for (var i = 0; i< csvArr.length; i++) { var line = csvArr[i]; var aStr = line.slice(0, line.indexOf(",")); var bStr = line.slice(line.indexOf(",") + 1); // replace quotes with nothing bStr = bStr.replace(/\"/gm, ""); // split column b into seperate elements var sp = bStr.split(","); textArr.push([aStr, sp[0], sp[1], sp[2], sp[3]]); } // let's loop over the array and see what it says... for (var i = 0; i< textArr.length; i++) { for (var j = 0; j< textArr[i].length; j++) { msg += textArr[i][j] + " , "; } msg += "\n"; } alert(msg); // you can access the info like this: var data = textArr[4][1]; alert(data); // temp 5