Я оставил рабочий пример скрипта внизу.
Часть, которая нуждалась в некоторой работе, была в основном:
exportTableToCSV.apply(this, [$('#dvData>table'), 'export.csv']);
To:
exportTableToCSV.apply(this, [$('#dvData'), 'export.csv']);
Затем нужно было форматировать результаты:
// actual delimiter characters for CSV format
colDelim = ",",
rowDelim = "\r\n",
// Grab text from table into CSV formatted string
csv = $rows.map(function (i, row) {
var $row = $(row),
$cols = $row.find('td');
return $cols.map(function (j, col) {
var $col = $(col),
text = '"' + $col.text().replace(/(\r\n|\n|\r)/gm,"").trim() + '"';
return text //.replace('"', '""'); // escape double quotes
}).get().join(tmpColDelim);
}).get().join(tmpRowDelim)
.split(tmpRowDelim).join(rowDelim)
.split(tmpColDelim).join(colDelim),
Теперь он возвращает список, разделенный запятыми, где каждый столбец заключен в кавычки.
Пример на jsFiddle
Я оставлю вам тонкую настройку.