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

如何用JavaScript实现Excel数据批量粘贴填充Salesforce多输入字段

Salesforce 3列不定行数据批量录入脚本适配方案

适配修改核心逻辑

  • 移除旧版本适配其他模块的动态列数检测,固定按3列规则解析粘贴数据
  • 优化数据分隔逻辑,同时兼容Excel复制默认的制表符、空格两种分隔格式,避免粘贴数据识别失败
  • 适配不定行需求,自动匹配页面现有输入行数量与粘贴数据行数,超出页面输入行的数据自动截断,不足则保留剩余单元格为空
  • 保留原有可拖拽弹窗、行列数实时预览功能,降低团队成员使用成本

完整可直接使用的脚本

javascript:$e = $('<div id="forecastValuesDiv">'+
'<strong>财务数据批量录入</strong>'+
'<br /><br />请粘贴从Excel复制的3列数据,行数无限制<br /><br />'+
'无需提前选中输入框<br /><br />'+
'<textarea id="forecastValues" rows="15" cols="60"></textarea>'+
'<br /><br /><strong>检测信息:</strong><br />'+
'<span id="detectedValuesText" style="color:red"></span><br />'+
'<button type="button" id="submitForecastValues">录入数据</button> '+
'<button type="button" id="closeForecastValues">关闭</button>'+
'</div>');
$('body').append($e);
$e.css({ position: 'absolute', top: '150px', right: '10px', 
         width: '400px', height: '450px', backgroundColor: 
         'white', "border": "solid 3px #096", "z-index": 
         '1000', "padding": "5px", "text-align": 
         "center"});
if(typeof $e.draggable === 'function') $e.draggable(); 
var inputRows = 0, inputColumns = 0, valueRows = 0, valueColumns = 0; 

// 自动检测页面输入行列
function detectInputGrid(){
    var dataTableRows = $(".list.dataTable tbody").children(); 
    if(dataTableRows.length>0){
        var dataTableCells = $(dataTableRows[0]).find("input:visible");
        inputRows = dataTableRows.length; 
        inputColumns = dataTableCells.length; 
    }else{
        inputRows = 0;
        inputColumns = 0;
    }
    updateDetectedInput();
}

$("#forecastValues").on('input',function(e){ 
    detectInputGrid();
    var textAreaValue = $("textarea#forecastValues").val().trim();
    valueRows = 0;
    valueColumns = 0;
    if( textAreaValue.length > 0 ){
        var rows = textAreaValue.split(/[\r\n]+/g); 
        valueRows = rows.length; 
        if( valueRows > 0 ){
            // 兼容制表符和空格分隔
            valueColumns = rows[0].trim().split(/[\s\t]+/g).length;              
        }
    }
    updateDetectedInput(); 
}); 

function updateDetectedInput(){ 
    var tips = "页面输入框:" + inputRows + " 行 × " + inputColumns + " 列<br />粘贴数据:" + valueRows + " 行 × " + valueColumns + " 列<br/>";
    if(valueColumns>0 && valueColumns!=3){
        tips += "<br/>⚠️ 粘贴数据列数不是3列,请检查后重新粘贴";
    }
    $("#detectedValuesText").html(tips); 
}; 

$("#submitForecastValues").click(function(){
    detectInputGrid();
    if(valueColumns!=3){
        alert("粘贴数据列数不符合3列要求,请调整后再提交");
        return;
    }
    var dataTableRows = $(".list.dataTable tbody").children();    
    var yearValues = $("textarea#forecastValues").val().trim().split(/[\r\n]+/g); 
    var validRowCount = Math.min(dataTableRows.length, yearValues.length);
    for (var i = 0; i < validRowCount; i++){
        var dataTableCells = $(dataTableRows[i]).find("input:visible"); 
        var rowValues = yearValues[i].trim().split(/[\s\t]+/g); 
        var validColCount = Math.min(3, dataTableCells.length);
        for(var j = 0; j < validColCount ; j++){
            if(rowValues[j] !== undefined){
                 dataTableCells[j].value = rowValues[j];
            }
        }
    }
    alert("数据填充完成,共填充"+validRowCount+"行数据");
}); 

$("#closeForecastValues").click(function(){
    $e.remove(); 
}); 
detectInputGrid();

使用说明

  • 将上述完整代码复制,新建浏览器书签,把代码粘贴到书签的「URL」输入框中,命名为「Salesforce批量录入」即可
  • 打开Salesforce对应数据录入页面,点击刚才新建的书签即可弹出录入窗口
  • 从Excel中选中需要录入的3列数据直接复制,粘贴到弹窗的文本框中
  • 确认弹窗提示的行列数符合要求后,点击「录入数据」按钮即可自动填充所有对应单元格

注意:如果脚本无法识别到页面的输入表格,请将代码中两处$(".list.dataTable tbody")替换为当前Salesforce录入页面对应表格tbody的CSS选择器即可

内容的提问来源于stack exchange,提问作者DazTimm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:03:03