思迅天店 会员列表导出工具箱

发布时间:2026-08-23 21:08:45 作者:网信云 来源:本站 浏览量(11) 点赞(2)
摘要:body{font-family:-apple-system,"Microsoft YaHei",sans-serif;max-width:1000px;margin:0 auto;padding:24px;background:#f5f7fa;color:#222;line-height:1.6} h1{color:#07c;border-bottom:3px solid #07c;padding-bottom:8px} h2{color:#07c;margin-top:28px} .card{background:#fff;border:1px solid #e1e4e8

思迅天店 列表导出工具箱

把会员、商品、供应商等任意翻页列表,一键导出为 CSV。本页汇总了三种用法,按需取用即可。换电脑时只要把这个 HTML 文件拷过去打开就行。

推荐方案:① 油猴用户脚本(装一次,以后右下角自动出现按钮,最省事)。控制台方案(② 会员 / ③ 商品)作为无插件兜底。

① 油猴用户脚本(推荐,长期使用)

安装:Chrome 装 Tampermonkey 扩展 → 点下面「下载 .user.js」→ 把下载的文件拖进 Tampermonkey 窗口 → 完成。

使用:打开思迅后台任意列表页 → 右下角出现「思迅导出工具」面板 → 点「开始导出」→ 点页面「查询」→ 自动翻页下载 CSV。

⬇ 下载 .user.js复制脚本

// ==UserScript== // @name         思迅天店 列表一键导出 // @namespace    http://tampermonkey.net/ // @version      1.0 // @description  在思迅天店网页后台(会员/商品/供应商等列表页)一键翻页导出 CSV // @match        https://star.td365.com.cn/Subsite* // @grant        none // @run-at       document-idle // ==/UserScript== (function(){  'use strict';  if(document.getElementById('sx_export_bar')) return;  var bar=document.createElement('div');  bar.id='sx_export_bar';  bar.style.cssText='position:fixed;right:10px;bottom:10px;z-index:999999;background:#fff;border:2px solid #07c;padding:10px;font:12px/1.4 monospace;color:#000;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.2)';  bar.innerHTML='<p>思迅导出工具</p>'+    '<button id="sx_start" style="margin:2px;padding:4px 8px;cursor:pointer">开始导出</button>'+    '<button id="sx_finish" style="margin:2px;padding:4px 8px;cursor:pointer">手动下载</button>'+    '<p>点“开始导出”后,再点页面“查询”</p>';  document.body.appendChild(bar);  function L(m){document.getElementById('sx_status').textContent=m;}  var rows=[], seen={}, cols=null, pages=0, running=false, armed=false, started=false, totalCount=null, targetPath=null;  function findDataArray(o,best){    best=best||{arr:null,n:0};    if(!o||typeof o!=='object') return best;    if(Array.isArray(o)){      if(o.length && typeof o[0]==='object' && !Array.isArray(o[0])){        var ks=Object.keys(o[0]);        if(ks.length>=3 && o.length>=1 && o.length>best.n){ best={arr:o,n:o.length,cols:ks}; }      }      return best;    }    for(var k in o){ if(o[k]&&typeof o[k]==='object'){ best=findDataArray(o[k],best); } }    return best;  }  function getTotal(j){    if(!j||typeof j!=='object')return null;    var ks=['total','totalcount','totalCount','count','recordcount','recordCount','recordsTotal','totalrows','totalRows'];    for(var i=0;i<ks.length;i++){ if="">'];    var all=document.querySelectorAll('button,a,li,span,div,i');    for(var i=0;i<all.length;i++){ var="" el="all[i];" if="">'&&t.indexOf(tt)>=0)){ return el; }      }    }    var cls=document.querySelectorAll('[class*="next"],[id*="next"]');    for(var j=0;j<cls.length;j++){ var="" e="cls[j];" if="">=totalCount){ L('已达总数,停止'); break; }      if(safety>800){ L('超过安全次数,停止'); break; }      var btn=findNextBtn();      if(!btn){ L('未找到“下一页”按钮。 手动点下一页,点完点“手动下载”'); running=false; return; }      if(btn.disabled){ L('下一页已禁用(已到末页),停止'); break; }      var beforeRows=rows.length, beforePages=pages;      try{ btn.click(); }catch(e){ L('点击失败:'+e); break; }      var waited=0;      while(pages<=beforepages></=beforepages></cls.length;j++){></all.length;i++){></ks.length;i++){>

② 会员专用(控制台版,无插件兜底)

会员档案页 F12 → Console,粘贴运行 → 点「查询」→ 自动翻页下载。兜底命令:__startExport() / __finishExport()

复制脚本下载 .js

(function(){  var ov=document.createElement('div');  ov.style.cssText='position:fixed;top:10px;right:10px;z-index:99999;background:#fff;border:2px solid #07c;padding:10px;font:12px/1.4 monospace;max-width:380px;max-height:85vh;overflow:auto;border-radius:8px;color:#000;pointer-events:none';  document.body.appendChild(ov);  function L(m){ov.textContent='会员导出: '+m;}  var rows=[], seen={}, cols=null, pages=0, running=false, started=false, totalCount=null;  // 从任意嵌套结构里找会员数组(含姓名/手机/卡号等字段的对象数组)  function isMembers(o){    if(!o) return null;    var a=null;    if(Array.isArray(o)) a=o;    else {      for(var k in o){        if(Array.isArray(o[k]) && o[k][0] && typeof o[k][0]==='object'){a=o[k];break;}        if(o[k] && typeof o[k]==='object'){var s=isMembers(o[k]); if(s){a=s;break;}}      }    }    if(!a||!a.length) return null;    var ks=Object.keys(a[0]).join(',').toLowerCase();    return /phone|mobile|name|cardno|member|会员|手机号|id|卡号/.test(ks)?a:null;  }  function getTotal(j){    if(!j||typeof j!=='object')return null;    var ks=['total','totalcount','totalCount','count','recordcount','recordCount','recordsTotal','totalrows','totalRows'];    for(var i=0;i<ks.length;i++){ if="">'];    var all=document.querySelectorAll('button,a,li,span,div,i');    for(var i=0;i<all.length;i++){ var="" el="all[i];" if="">'&&t.indexOf(tt)>=0)){ return el; }      }    }    var cls=document.querySelectorAll('[class*="next"],[id*="next"]');    for(var j=0;j<cls.length;j++){ var="" e="cls[j];" if="">=totalCount){ L('已达总数,停止'); break; }      if(safety>800){ L('超过安全次数,停止'); break; }      var btn=findNextBtn();      if(!btn){ L('未找到“下一页”按钮。 请手动点下一页,点完后 在控制台输入 __finishExport() 下载'); running=false; return; }      if(btn.disabled){ L('下一页已禁用(已到末页),停止'); break; }      var beforeRows=rows.length, beforePages=pages;      try{ btn.click(); }catch(e){ L('点击失败:'+e); break; }      var waited=0;      while(pages<=beforepages></=beforepages></cls.length;j++){></all.length;i++){></ks.length;i++){>

③ 通用版(商品/供应商/库存,控制台兜底)

商品等任意翻页列表页 F12 → Console,粘贴运行 → 点「查询」→ 自动翻页下载。自动识别列表数组,不挑字段。

复制脚本下载 .js

(function(){  var ov=document.createElement('div');  ov.style.cssText='position:fixed;top:10px;right:10px;z-index:99999;background:#fff;border:2px solid #07c;padding:10px;font:12px/1.4 monospace;max-width:380px;max-height:85vh;overflow:auto;border-radius:8px;color:#000;pointer-events:none';  document.body.appendChild(ov);  function L(m){ov.textContent='导出: '+m;}  var rows=[], seen={}, cols=null, pages=0, running=false, started=false, totalCount=null, targetPath=null;  function findDataArray(o, best){    best=best||{arr:null,n:0};    if(!o||typeof o!=='object') return best;    if(Array.isArray(o)){      if(o.length && typeof o[0]==='object' && !Array.isArray(o[0])){        var ks=Object.keys(o[0]);        if(ks.length>=3 && o.length>=1 && o.length>best.n){ best={arr:o,n:o.length,cols:ks}; }      }      return best;    }    for(var k in o){ if(o[k]&&typeof o[k]==='object'){ best=findDataArray(o[k],best); } }    return best;  }  function getTotal(j){    if(!j||typeof j!=='object')return null;    var ks=['total','totalcount','totalCount','count','recordcount','recordCount','recordsTotal','totalrows','totalRows'];    for(var i=0;i<ks.length;i++){ if="">'];    var all=document.querySelectorAll('button,a,li,span,div,i');    for(var i=0;i<all.length;i++){ var="" el="all[i];" if="">'&&t.indexOf(tt)>=0)){ return el; }      }    }    var cls=document.querySelectorAll('[class*="next"],[id*="next"]');    for(var j=0;j<cls.length;j++){ var="" e="cls[j];" if="">=totalCount){ L('已达总数,停止'); break; }      if(safety>800){ L('超过安全次数,停止'); break; }      var btn=findNextBtn();      if(!btn){ L('未找到“下一页”按钮。 请手动点下一页,点完后 在控制台输入 __finishExport() 下载'); running=false; return; }      if(btn.disabled){ L('下一页已禁用(已到末页),停止'); break; }      var beforeRows=rows.length, beforePages=pages;      try{ btn.click(); }catch(e){ L('点击失败:'+e); break; }      var waited=0;      while(pages<=beforepages></=beforepages></cls.length;j++){></all.length;i++){></ks.length;i++){>

使用须知

  • 脱敏限制:会员姓名、手机号、商品成本价等若后台返回就是星号/空(账号无权限),脚本无法还原,需总部或管理员账号才能拿到明文。

  • 翻页逻辑:脚本自动点「下一页」并抓取,若某页识别不到按钮,提示会说明,可手动翻页后点「手动下载」。

  • 控制台复制:从本页「复制脚本」后,粘贴到目标页面的 Console(F12)回车即可;油猴方案无需开控制台。

  • 数据安全:导出的是你自己账号下的数据,下载后注意保存,勿外传敏感信息。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何关于行业收银管理系统,财务软件等疑难杂症!