source: main/trunk/model-sites-dev/von-sparql/js/table2CSV.js@ 28914

Last change on this file since 28914 was 28914, checked in by ak19, 10 years ago

Supporting javascript libraries and bespoke code written by Steffan to support the von-sparql user interface

File size: 2.4 KB
Line 
1jQuery.fn.table2CSV = function(options) {
2 var options = jQuery.extend({
3 separator: ',',
4 header: [],
5 delivery: 'popup' // popup, value
6 },
7 options);
8
9 var csvData = [];
10 var headerArr = [];
11 var el = this;
12
13 //header
14 var numCols = options.header.length;
15 var tmpRow = []; // construct header avalible array
16
17 if (numCols > 0) {
18 for (var i = 0; i < numCols; i++) {
19 tmpRow[tmpRow.length] = formatData(options.header[i]);
20 }
21 } else {
22 $(el).filter(':visible').find('th').each(function() {
23 if ($(this).css('display') != 'none') tmpRow[tmpRow.length] = formatData($(this).text());
24 });
25 }
26
27 row2CSV(tmpRow);
28
29 // actual data
30 $(el).find('tr').each(function() {
31 var tmpRow = [];
32 $(this).filter(':visible').find('td').each(function() {
33 if ($(this).css('display') != 'none') tmpRow[tmpRow.length] = formatData($(this).text());
34 });
35 row2CSV(tmpRow);
36 });
37 if (options.delivery == 'popup') {
38 var mydata = csvData.join('\n');
39 return popup(mydata);
40 } else {
41 var mydata = csvData.join('\n');
42 return mydata;
43 }
44
45 function row2CSV(tmpRow) {
46 var tmp = tmpRow.join('') // to remove any blank rows
47 // alert(tmp);
48 if (tmpRow.length > 0 && tmp != '') {
49 var mystr = tmpRow.join(options.separator);
50 csvData[csvData.length] = mystr;
51 }
52 }
53 function formatData(input) {
54 // replace " with “
55 var regexp = new RegExp(/["]/g);
56 var output = input.replace(regexp, "“");
57 //Remove trailing whitespace
58 var regexp = new RegExp(/\s+$/);
59 var output = output.replace(regexp, "");
60 //HTML
61 var regexp = new RegExp(/\<[^\<]+\>/g);
62 var output = output.replace(regexp, "");
63 if (output == "")
64 return '';
65 return '"' + output + '"';
66 }
67 function popup(data) {
68 var generator = window.open('', 'csv', 'height=400,width=600');
69 generator.document.write('<html><head><title>CSV</title>');
70 generator.document.write('</head><body >');
71 generator.document.write('<textArea cols=70 rows=15 wrap="off" >');
72 generator.document.write(data);
73 generator.document.write('</textArea>');
74 generator.document.write('</body></html>');
75 generator.document.close();
76 return true;
77 }
78};
Note: See TracBrowser for help on using the repository browser.