LoginSignup
3
4

More than 5 years have passed since last update.

CSVからTextile|Markdownテーブル変換ブックマークレット

Last updated at Posted at 2017-11-06

csv文字列を選択⇒ブックマークレット起動⇒変換後の文字列がプロンプトへ出力される
※区切り文字はエクセルからコピペすることを意識してタブ文字です。
このコードは以下コードを使用しています。
JavaScriptでCSV読み込み(ダブルクォート内でのセル内改行に対応) - Qiita

CSV2TextileTable

javascript: (function () { var csvToArray = function (csvString) { var separator = '\t'; var columnSize = csvString.split(/\r\n|\r|\n/)[0].split(separator).length; var chars = Array.from(csvString.replace(/\r\n|\r|\n/g, '\n')); var csvList = []; var list = []; var queteOpenFlg = false; var buf = ""; for (var i = 0; i < chars.length; i++) { console.log(columnSize); if (chars[i] == '"') { queteOpenFlg = queteOpenFlg == false; } else { if ((chars[i] == separator || chars[i] == '\n') && !queteOpenFlg) { list.push(buf); buf = ""; if (list.length == columnSize) { csvList.push(list); list = []; } } else { buf += chars[i]; } } } console.log(csvList[0][0]); var csv = {}; csv.dataList = []; for (var i = 0; i < csvList.length; i++) { if (i == 0) { csv.header = csvList[i]; } else { csv.dataList.push(csvList[i]); } } return csv; }; var sel = window.getSelection(); if (!sel.rangeCount) return; var csv = csvToArray(sel.toString()+'\n'); var wikiString = "|_." + csv.header.join("|_.") + "|\n"; for (var i = 0; i < csv.dataList.length; i++) { wikiString += "|" + csv.dataList[i].join("|") + "|\n"; } javascript: void prompt('Make Textile Table', wikiString); })();

CSV2MarkdownTable

javascript: (function () { var csvToArray = function (csvString) { var separator = '\t'; var columnSize = csvString.split(/\r\n|\r|\n/)[0].split(separator).length; var chars = Array.from(csvString.replace(/\r\n|\r|\n/g, '\n')); var csvList = []; var list = []; var queteOpenFlg = false; var buf = ""; for (var i = 0; i < chars.length; i++) { console.log(columnSize); if (chars[i] == '"') { queteOpenFlg = queteOpenFlg == false; } else { if ((chars[i] == separator || chars[i] == '\n') && !queteOpenFlg) { list.push(buf.replace(/\n/g, '<br>')); buf = ""; if (list.length == columnSize) { csvList.push(list); list = []; } } else { buf += chars[i]; } } } console.log(csvList[0][0]); var csv = {}; csv.dataList = []; for (var i = 0; i < csvList.length; i++) { if (i == 0) { csv.header = csvList[i]; } else { csv.dataList.push(csvList[i]); } } return csv; }; var sel = window.getSelection(); if (!sel.rangeCount) return; var csv = csvToArray(sel.toString() + '\n'); var wikiString = "|" + csv.header.join("|") + "|\n"; for (var i = 0; i < csv.header.length; i++) { wikiString += "|:----"; } wikiString += "|\n"; for (var i = 0; i < csv.dataList.length; i++) { var line = "|" + csv.dataList[i].join("|") + "|\n"; wikiString += line; } javascript: void prompt('Make Markdown Table', wikiString); })();
3
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4