Table to CSV
by
Lhankor_Mhy
2022-01-04 [2022/01/04 13:20:31]
テーブルクリックでCSVとしてダウンロード
/*
* @title Table to CSV
* @description テーブルクリックでCSVとしてダウンロード
* @include http://*
* @license public domain
* @javascript_url
*/
{
const target = document.querySelectorAll('table');
const dl = event => {
const bom = new Uint8Array([0xef, 0xbb, 0xbf]);
console.log(event.currentTarget)
const a = document.createElement('a');
a.download = 'test.csv';
a.href = URL.createObjectURL(
new Blob([
bom,
Array.from(event.currentTarget.querySelectorAll(`tr`)).map(
r => [...r.children].map(c => `"${c.innerText}"`).join(',')
).join('\n')
],
{ type: "text/csv" }
)
)
a.click();
removeEvent();
}
target.forEach(table => {
table.addEventListener('click', dl)
alert('テーブルをクリックしてください')
});
const removeEvent = ()=>{
target.forEach(table=>{
table.removeEventListener('click', dl);
})
}
}
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。