After Effects脚本开发:如何使用CSV数据填充dropdownlist下拉列表
AE脚本读取CSV填充下拉列表实现代码
完整可运行代码
// 创建窗口 var win = new Window("dialog", "CSV填充下拉列表示例", [100, 100, 400, 250]); // 创建下拉列表控件 var dropdown = win.add("dropdownlist", [20, 20, 260, 40], []); // 选择CSV文件按钮 var selectBtn = win.add("button", [20, 60, 180, 90], "选择CSV文件"); // 确认按钮 var confirmBtn = win.add("button", [200, 60, 280, 90], "确认"); // CSV解析函数(简单适配无内嵌逗号的常规CSV) function parseCSV(file) { if(!file.exists) return []; file.open("r"); var content = file.read(); file.close(); // 按换行拆分所有行 var lines = content.split(/\r?\n/); var result = []; for(var i = 0; i < lines.length; i++) { var trimLine = lines[i].trim(); if(trimLine === "") continue; // 按逗号拆分单元格,默认取第一列内容填充下拉,可修改索引取其他列 var cells = trimLine.split(","); result.push(cells[0].trim()); } return result; } // 选择CSV按钮点击事件 selectBtn.onClick = function() { var csvFile = File.openDialog("选择CSV文件", "*.csv", false); if(!csvFile) return; var csvData = parseCSV(csvFile); // 清空原有下拉选项 dropdown.removeAll(); // 填充新数据到下拉列表 for(var j = 0; j < csvData.length; j++) { dropdown.add("item", csvData[j]); } // 有数据时默认选中第一项 if(csvData.length > 0) dropdown.selection = 0; } // 确认按钮点击事件,可在此处扩展选中后的业务逻辑 confirmBtn.onClick = function() { if(dropdown.selection) { alert("当前选中项:" + dropdown.selection.text); } win.close(); } // 显示窗口 win.show();
关键逻辑说明
- 文件读取:使用AE ExtendScript原生
File对象的openDialog方法让用户选择本地CSV文件,无需额外权限 - CSV解析:示例为简易实现,适配无内嵌逗号、引号的常规CSV文件,如果你使用的CSV格式复杂,可自行替换
parseCSV函数的解析逻辑 - 下拉列表操作:调用
removeAll清空原有选项,调用add方法逐个添加新选项即可完成填充
使用注意事项
- 如果你的CSV第一行是表头不需要填充到下拉,可在
parseCSV函数的循环中跳过i=0的第一行 - 如果需要取CSV的其他列填充下拉,修改
cells[0]的索引即可,比如取第二列改为cells[1]
内容的提问来源于stack exchange,提问作者Rigel
相关产品推荐
相关产品推荐

