Exports WME Place Browser's table output to CSV and download to local disk
当前为
// ==UserScript==
// @name Place Browser Table Export
// @namespace http://junyianl.net/
// @version 2019.10.04
// @description Exports WME Place Browser's table output to CSV and download to local disk
// @author junyianl
// @match https://w-tools.org/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Your code here...
function downloadCSV(csv, filename) {
var csvFile;
var downloadLink;
// CSV file
csvFile = new Blob([csv], {type: "text/csv"});
// Download link
downloadLink = document.createElement("a");
// File name
downloadLink.download = filename;
// Create a link to the file
downloadLink.href = window.URL.createObjectURL(csvFile);
// Hide download link
// downloadLink.style.display = "none";
// Add the link to DOM
document.body.appendChild(downloadLink);
// Click download link
downloadLink.click();
}
function exportTableToCSV(filename) {
var csv = [];
var table = document.querySelectorAll("table.tablesorter");
// Populate column headers
var row = [], cols = table[0].querySelectorAll("th");
for (var i = 0; i < cols.length; i++) {
row.push('"'+cols[i].innerText+'"');
}
csv.push(row.join(","));
// Populate places
var places = table[0].querySelectorAll("[class*=validate]");
for (var j = 0; j < places.length; j++) {
var placerow = [], placecol = places[j].querySelectorAll("td");
for (var k = 0; k < placecol.length; k++) {
if (k == 2) {
var issue = [], issues = placecol[k].querySelectorAll("li");
for (var l = 0; l < issues.length; l++) {
issue.push(issues[l].innerText);
}
placerow.push('"'+issue.join("|")+'"');
}
else {
placerow.push('"'+placecol[k].innerText.trim()+'"');
}
}
csv.push(placerow.join(","));
}
// Download CSV file
downloadCSV(csv.join("\r\n"), filename);
}
var group = document.querySelector('[id=MainContent_ddlAreaGroup]').selectedOptions[0].value;
var area = document.querySelector('[id=MainContent_DropDownList1]').selectedOptions[0].innerText;
var date = new Date();
exportTableToCSV(group + '_' + area + '_' + date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate() + '.csv');
})();