美团商家流量导出Excel

商家流量导出Excel

当前为 2020-05-19 提交的版本,查看 最新版本

// ==UserScript==
// @name         美团商家流量导出Excel
// @namespace    http://tampermonkey.net/
// @version      0.1.1
// @description  商家流量导出Excel
// @author       yhpl-pgq
// @match        https://waimaieapp.meituan.com/igate/*
// @require      http://cdn.staticfile.org/xlsx/0.16.1/xlsx.mini.min.js
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    addButton();
    console.log('enter')
})();
function addButton(){
    var header = document.getElementsByClassName('card-header-title')[0]
    var button = document.createElement('BUTTON');
    button.innerText = "导出为Excel";
    button.onclick = getTable;
    header.appendChild(button);
}
function getTable(){
    var groups = document.getElementsByClassName('table-group');
    var cols = [];
    for (var index =0; index < groups.length; index++){
        var group = groups[index];
        var rightDiv = group.children[1];
        var topRow = rightDiv.children[0];
        var topRowChildCount = topRow.childElementCount;
        var rows = [topRowChildCount];
        for(var col =0; col<topRowChildCount; col++){
            var val = topRow.children[col].innerText.trim();
            val = filterWords(val);
            console.log('col:'+val);
            rows[col] = val;
        }
        cols.push(rows);
    }
    exportAsXLS(cols);
}
function filterWords(val){
    val = val.replace(/[\r\n]/g,"");
    val = val.replace(/超越|落后|pp/, "");
    return val;
}
function exportAsXLS(aoa){
    var excelName = document.getElementsByClassName("card-header-title")[0].innerText.split('\n')[0] + ".xlsx";
    var sheet = XLSX.utils.aoa_to_sheet(aoa);
    //var sheet = XLSX.utils.aoa_to_sheet([[1,2,3,4]]);
    openDownloadDialog(sheet2blob(sheet),excelName);
}
function sheet2blob(sheet, sheetName) {
    sheetName = sheetName || 'sheet1';
    var workbook = {
        SheetNames: [sheetName],
        Sheets: {}
    };
    workbook.Sheets[sheetName] = sheet; // 生成excel的配置项

    var wopts = {
        bookType: 'xlsx', // 要生成的文件类型
        bookSST: false, // 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本IOS设备上有更好的兼容性
        type: 'binary'
    };
    var wbout = XLSX.write(workbook, wopts);
    var blob = new Blob([s2ab(wbout)], {
        type: "application/octet-stream"
    }); // 字符串转ArrayBuffer
    function s2ab(s) {
        var buf = new ArrayBuffer(s.length);
        var view = new Uint8Array(buf);
        for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
        return buf;
    }
    return blob;
}
function openDownloadDialog(url, saveName) {
    if (typeof url == 'object' && url instanceof Blob) {
        url = URL.createObjectURL(url); // 创建blob地址
    }
    var aLink = document.createElement('a');
    aLink.href = url;
    aLink.download = saveName || ''; // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效
    var event;
    if (window.MouseEvent) event = new MouseEvent('click');
    else {
        event = document.createEvent('MouseEvents');
        event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    }
    aLink.dispatchEvent(event);
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址