Skip to content

Instantly share code, notes, and snippets.

@deguchi
Last active April 4, 2023 02:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save deguchi/cc5e8cd34434c966540df8332fb1c263 to your computer and use it in GitHub Desktop.
Save deguchi/cc5e8cd34434c966540df8332fb1c263 to your computer and use it in GitHub Desktop.
MoneyForwardの月の収入・支出詳細をCSVでダウンロード
// taken from http://stackoverflow.com/questions/3665115/create-a-file-in-memory-for-user-to-download-not-through-server
function download(filename, text) {
const element = document.createElement("a");
element.setAttribute(
"href",
"data:text/csv;charset=utf-8,\ufeff" + encodeURIComponent(text)
);
element.setAttribute("download", filename);
element.style.display = "none";
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
let loader = (src, callback) => {
let s = document.createElement("script");
s.src = src;
document.body.appendChild(s);
s.onload = () => {
callback();
};
};
loader("//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js", () => {
loader("//cdn.jsdelivr.net/npm/table2csv@1.1.4/src/table2csv.min.js", () => {
var text = $(".table").table2csv("return");
text = text.split('"\n').reduce((accumulator, currentValue) => {
if (currentValue.match(/ATM/)) return accumulator;
if (currentValue.match(/\(振替\)/)) return accumulator;
if (currentValue.match(/CDカ-ド/)) return accumulator;
if (currentValue.match(/AMAZON\.CO\.JP/)) return accumulator;
return accumulator + '"\n' + currentValue;
});
download("test.csv", text);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment