<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.wosforge.org/index.php?action=history&amp;feed=atom&amp;title=Template%3AExportCSV</id>
	<title>Template:ExportCSV - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.wosforge.org/index.php?action=history&amp;feed=atom&amp;title=Template%3AExportCSV"/>
	<link rel="alternate" type="text/html" href="https://wiki.wosforge.org/index.php?title=Template:ExportCSV&amp;action=history"/>
	<updated>2026-05-20T23:22:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.wosforge.org/index.php?title=Template:ExportCSV&amp;diff=62&amp;oldid=prev</id>
		<title>WikiAdmin: Create ExportCSV template: button that reads next wikitable and downloads as CSV</title>
		<link rel="alternate" type="text/html" href="https://wiki.wosforge.org/index.php?title=Template:ExportCSV&amp;diff=62&amp;oldid=prev"/>
		<updated>2026-05-17T20:40:17Z</updated>

		<summary type="html">&lt;p&gt;Create ExportCSV template: button that reads next wikitable and downloads as CSV&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div class=&amp;quot;export-csv-btn&amp;quot; data-table=&amp;quot;{{{table|next}}}&amp;quot; style=&amp;quot;margin-bottom:4px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;button onclick=&amp;quot;(function(btn){&lt;br /&gt;
  var container = btn.parentElement;&lt;br /&gt;
  var tbl = container.nextElementSibling;&lt;br /&gt;
  while(tbl &amp;amp;&amp;amp; tbl.tagName !== &amp;#039;TABLE&amp;#039;) tbl = tbl.nextElementSibling;&lt;br /&gt;
  if(!tbl){ alert(&amp;#039;Table not found&amp;#039;); return; }&lt;br /&gt;
  var rows = tbl.querySelectorAll(&amp;#039;tr&amp;#039;);&lt;br /&gt;
  var csv = [];&lt;br /&gt;
  rows.forEach(function(row){&lt;br /&gt;
    var cells = row.querySelectorAll(&amp;#039;th, td&amp;#039;);&lt;br /&gt;
    var line = [];&lt;br /&gt;
    cells.forEach(function(cell){&lt;br /&gt;
      var txt = cell.innerText.replace(/&lt;br /&gt;
/g,&amp;#039; &amp;#039;).trim();&lt;br /&gt;
      if(txt.indexOf(&amp;#039;,&amp;#039;) !== -1 || txt.indexOf(&amp;#039;&amp;quot;&amp;#039;) !== -1) txt = &amp;#039;&amp;quot;&amp;#039; + txt.replace(/&amp;quot;/g,&amp;#039;&amp;quot;&amp;quot;&amp;#039;) + &amp;#039;&amp;quot;&amp;#039;;&lt;br /&gt;
      line.push(txt);&lt;br /&gt;
    });&lt;br /&gt;
    if(line.length) csv.push(line.join(&amp;#039;,&amp;#039;));&lt;br /&gt;
  });&lt;br /&gt;
  var blob = new Blob([csv.join(&amp;#039;&lt;br /&gt;
&amp;#039;)], {type:&amp;#039;text/csv&amp;#039;});&lt;br /&gt;
  var a = document.createElement(&amp;#039;a&amp;#039;);&lt;br /&gt;
  a.href = URL.createObjectURL(blob);&lt;br /&gt;
  a.download = (document.title.replace(/ - .*/,&amp;#039;&amp;#039;).trim().replace(/ /g,&amp;#039;_&amp;#039;) || &amp;#039;export&amp;#039;) + &amp;#039;.csv&amp;#039;;&lt;br /&gt;
  document.body.appendChild(a); a.click(); document.body.removeChild(a);&lt;br /&gt;
})(this)&amp;quot; style=&amp;quot;cursor:pointer; background:#2a2a2a; color:#e07000; border:1px solid #e07000; border-radius:4px; padding:4px 12px; font-size:0.85em; font-weight:bold;&amp;quot;&amp;gt;⬇ Export CSV&amp;lt;/button&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
Place &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExportCSV}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; immediately before any wikitable to add a CSV export button above it.&lt;br /&gt;
&lt;br /&gt;
The button reads the next &amp;lt;code&amp;gt;&amp;amp;lt;table&amp;amp;gt;&amp;lt;/code&amp;gt; element in the DOM and downloads it as a .csv file named after the page title.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>WikiAdmin</name></author>
	</entry>
</feed>