Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

283
Vistas
Cómo leer datos .xlsx y enviarlos a la matriz en el script .js para Photoshop

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:

Mi documento de Excel

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!

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

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
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda