You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Adobe Illustrator JS脚本:如何读取CSV文件中的坐标值并用于矩形位置定位

Adobe Illustrator JS脚本:如何读取CSV文件中的坐标值并用于矩形位置定位

嘿,你已经搞定最关键的前置步骤啦!能成功调出文件选择框并读取CSV内容,这已经很棒了。接下来只需要把读取到的CSV字符串转换成可直接使用的数值数组,然后用这些数值替代原来固定的mypos + 20逻辑就行,我来一步步给你拆解:

第一步:把CSV内容转成可用的数值数组

你读取到的csvContents是一串逗号分隔的字符串,比如"10, 23, 55, 123, 150 ..."。我们需要把它拆分成单个坐标值,去掉每个值前后的空格,再转换成数字类型:

// 拆分字符串、清理空格、转换为数字数组
var positionArray = csvContents.split(',').map(function(item) {
    return Number(item.trim());
});

这一步完成后,positionArray就变成了[10, 23, 55, 123, 150, ...]这样的数值数组,完全可以直接拿来用啦。

第二步:遍历数组创建对应位置的矩形

原来的固定循环是创建10个矩形,现在我们直接遍历positionArray的长度,每个数组元素对应一个矩形的位置。我把你的代码整合修改了一下,保持你原来的代码习惯:

完整可用的脚本代码

var myDocument = app.activeDocument;
var artLayer = myDocument.activeLayer;

// 打开CSV文件选择对话框并读取内容
var csvFile = File.openDialog("Choose CSV file.", "*.csv");
var csvContents = "";
if (csvFile) {
   csvFile.open('r');
   csvContents = csvFile.read();
   csvFile.close();

   // 将CSV内容处理为数值数组
   var positionArray = csvContents.split(',').map(function(item) {
       return Number(item.trim());
   });

   // 过滤掉数组里的无效非数值项(可选,防止出错)
   positionArray = positionArray.filter(num => !isNaN(num));

   // 遍历数组,用每个坐标值创建矩形
   for (var i = 0; i < positionArray.length; i++) {
       var currentPos = positionArray[i];
       // rectangle参数说明:(top, left, width, height),原点在页面左上角
       var rect = artLayer.pathItems.rectangle(0, currentPos, 200, 600);
   }
} else {
   alert("你没有选择任何CSV文件哦!");
}

小提醒:

  • 如果你CSV里的数值是对应矩形的垂直位置(top值),只需要把rectangle(0, currentPos, ...)改成rectangle(currentPos, 0, ...)就行,因为Illustrator脚本的rectangle()参数顺序是(top, left, width, height),注意坐标原点在页面左上角哦。
  • 加了个过滤无效值的逻辑,防止CSV里有空行或者非数字内容导致脚本报错,要是你的CSV数据很干净,也可以把这一行删掉。

备注:内容来源于stack exchange,提问作者Penumbra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 16:53:12