मेरे पास वेबसाइट पर एक HTML तालिका में डेटा की एक तालिका है और यह जानने की आवश्यकता है कि उस डेटा को .csv फ़ाइल के रूप में कैसे निर्यात करें।मैं HTML तालिका डेटा को .csv फ़ाइल के रूप में कैसे निर्यात करूं?
यह कैसे किया जाएगा?
मेरे पास वेबसाइट पर एक HTML तालिका में डेटा की एक तालिका है और यह जानने की आवश्यकता है कि उस डेटा को .csv फ़ाइल के रूप में कैसे निर्यात करें।मैं HTML तालिका डेटा को .csv फ़ाइल के रूप में कैसे निर्यात करूं?
यह कैसे किया जाएगा?
सीएसवी को एचटीएमएल निर्यात करने के लिए इस उदाहरण का पालन करने का प्रयास करें। अधिक जानकारी और उदाहरण author's website पर उपलब्ध हैं।
एक html2csv.js फ़ाइल बनाएं और इसमें निम्न कोड डालें।
jQuery.fn.table2CSV = function(options) {
var options = jQuery.extend({
separator: ',',
header: [],
delivery: 'popup' // popup, value
},
options);
var csvData = [];
var headerArr = [];
var el = this;
//header
var numCols = options.header.length;
var tmpRow = []; // construct header avalible array
if (numCols > 0) {
for (var i = 0; i < numCols; i++) {
tmpRow[tmpRow.length] = formatData(options.header[i]);
}
} else {
$(el).filter(':visible').find('th').each(function() {
if ($(this).css('display') != 'none') tmpRow[tmpRow.length] = formatData($(this).html());
});
}
row2CSV(tmpRow);
// actual data
$(el).find('tr').each(function() {
var tmpRow = [];
$(this).filter(':visible').find('td').each(function() {
if ($(this).css('display') != 'none') tmpRow[tmpRow.length] = formatData($(this).html());
});
row2CSV(tmpRow);
});
if (options.delivery == 'popup') {
var mydata = csvData.join('\n');
return popup(mydata);
} else {
var mydata = csvData.join('\n');
return mydata;
}
function row2CSV(tmpRow) {
var tmp = tmpRow.join('') // to remove any blank rows
// alert(tmp);
if (tmpRow.length > 0 && tmp != '') {
var mystr = tmpRow.join(options.separator);
csvData[csvData.length] = mystr;
}
}
function formatData(input) {
// replace " with “
var regexp = new RegExp(/["]/g);
var output = input.replace(regexp, "“");
//HTML
var regexp = new RegExp(/\<[^\<]+\>/g);
var output = output.replace(regexp, "");
if (output == "") return '';
return '"' + output + '"';
}
function popup(data) {
var generator = window.open('', 'csv', 'height=400,width=600');
generator.document.write('<html><head><title>CSV</title>');
generator.document.write('</head><body >');
generator.document.write('<textArea cols=70 rows=15 wrap="off" >');
generator.document.write(data);
generator.document.write('</textArea>');
generator.document.write('</body></html>');
generator.document.close();
return true;
}
};
इस तरह html पृष्ठ में js फ़ाइलों में शामिल हैं:
<script type="text/javascript" src="jquery-1.3.2.js" ></script>
<script type="text/javascript" src="html2CSV.js" ></script>
टेबल:
<table id="example1" border="1" style="background-color:#FFFFCC" width="0%" cellpadding="3" cellspacing="3">
<tr>
<th>Title</th>
<th>Name</th>
<th>Phone</th>
</tr>
<tr>
<td>Mr.</td>
<td>John</td>
<td>07868785831</td>
</tr>
<tr>
<td>Miss</td>
<td><i>Linda</i></td>
<td>0141-2244-5566</td>
</tr>
<tr>
<td>Master</td>
<td>Jack</td>
<td>0142-1212-1234</td>
</tr>
<tr>
<td>Mr.</td>
<td>Bush</td>
<td>911-911-911</td>
</tr>
</table>
निर्यात बटन:
<input value="Export as CSV 2" type="button" onclick="$('#example1').table2CSV({header:['prefix','Employee Name','Contact']})">
हाय, मैं वास्तव में शीघ्र और विस्तृत प्रतिक्रिया की सराहना करता हूं। मैंने आपके कोड की कोशिश की लेकिन जावास्क्रिप्ट में कई त्रुटियां दिखाई देती हैं। मैं जावास्क्रिप्ट गुरु नहीं हूं इसलिए मुझे नहीं पता कि इसे कैसे ठीक किया जाए। – fmz
धन्यवाद। लेकिन क्या आप त्रुटियों का उल्लेख कर सकते हैं। और यह भी बताओ कि आपने पहले उपर्युक्त उदाहरण की कोशिश की थी? – AlphaMale
यह मेरे लिए ठीक काम किया। मैं jQuery 1.7.2 का उपयोग कर रहा हूँ। बहुत बहुत धन्यवाद! – michaelok
यदि यह ऐसा कभी-कभी ज़रूरत नहीं है, कई फ़ायरफ़ॉक्स एडॉन्स में से एक को आजमाएं क्लिपबोर्ड पर HTML तालिका डेटा कॉपी करना (उदा।, https://addons.mozilla.org/en-US/firefox/addon/dafizilla-table2clipboard/)। उदाहरण के लिए, 'table2clipboard' के लिए ऐड-ऑन:
वह केवल फ़ायरफ़ॉक्स के लिए नहीं चाहता ... अच्छा उदाहरण नहीं –
यहाँ एक बहुत जल्दी CoffeeScript/jQuery उदाहरण
csv = []
for row in $('#sometable tr')
csv.push ("\"#{col.innerText}\"" for col in $(row).find('td,th')).join(',')
output = csv.join("\n")
आप Chrome के लिए एक एक्सटेंशन, कि अच्छी तरह से काम करता है बार मैं इसे की कोशिश की है इस्तेमाल कर सकते हैं है।
https://chrome.google.com/webstore/search/html%20table%20to%20csv?_category=extensions
स्थापित किया है और अगर आप इस एक्सटेंशन के आइकन पर क्लिक करें एक मेज के साथ किसी भी वेब पेज पर यह, पेज में सभी तालिकाओं से पता चलता प्रत्येक पर प्रकाश डाला के रूप में आप टेबल में सूचीबद्ध करता है ऊपर रोल करते हैं, तो क्लिक आप की अनुमति देता है इसे क्लिपबोर्ड पर कॉपी करें या इसे Google डॉक में सहेजें।
यह मेरी ज़रूरत के लिए पूरी तरह से काम करता है, जो वेब आधारित टैब्यूलर डेटा का कभी-कभी एक स्प्रेडशीट में रूपांतरण करता है जिसमें मैं काम कर सकता हूं।
मैं संक्षिप्त में एक साधारण Google स्प्रेडशीट (importHTML
) और अजगर के साथ यह करने के लिए (पांडा read_html
और to_csv
) एक उदाहरण पायथॉन लिपि रास्ता के साथ-साथ कवर किया गया है मेरी तो यहाँ का जवाब: https://stackoverflow.com/a/28083469/1588795।
मैं यहां उल्लिखित उत्तर का उपयोग करने में सक्षम था: Export to CSV using jQuery and html और इसे आईई में काम करने के लिए एक संशोधन में जोड़ा गया और तालिका में थैड को पकड़ने के लिए टिप्पणियों में उल्लिखित एक और संशोधन।
function exportTableToCSV($table, filename) {
var $rows = $table.find('tr:has(td),tr:has(th)'),
// Temporary delimiter characters unlikely to be typed by keyboard
// This is to avoid accidentally splitting the actual contents
tmpColDelim = String.fromCharCode(11), // vertical tab character
tmpRowDelim = String.fromCharCode(0), // null character
// 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,th');
return $cols.map(function (j, col) {
var $col = $(col), text = $col.text();
return text.replace(/"/g, '""'); // escape double quotes
}).get().join(tmpColDelim);
}).get().join(tmpRowDelim)
.split(tmpRowDelim).join(rowDelim)
.split(tmpColDelim).join(colDelim) + '"',
// Data URI
csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);
console.log(csv);
if (window.navigator.msSaveBlob) { // IE 10+
//alert('IE' + csv);
window.navigator.msSaveOrOpenBlob(new Blob([csv], {type: "text/plain;charset=utf-8;"}), "csvname.csv")
}
else {
$(this).attr({ 'download': filename, 'href': csvData, 'target': '_blank' });
}
}
// This must be a hyperlink
$("#xx").on('click', function (event) {
exportTableToCSV.apply(this, [$('#projectSpreadsheet'), 'export.csv']);
// IF CSV, don't do event.preventDefault() or return false
// We actually need this to be a typical hyperlink
});
मेरी लिंक इस तरह लग रही के साथ ...
<a href="#" id="xx" style="text-decoration:none;color:#000;background-color:#ddd;border:1px solid #ccc;padding:8px;">Export Table data into Excel</a>
JsFiddle: https://jsfiddle.net/mnsinger/65hqxygo/
ग्रेट उत्तर। साझा करने के लिए धन्यवाद। यह वही है जो मैं चाहता था! – Rymnel
बिल्कुल मुझे क्या चाहिए! धन्यवाद –
यह सुंदर काम करता है! सरल और तेज़! –
gene tsai
के लिए धन्यवाद, यहाँ मेरी लक्ष्य पृष्ठ पर चलाने के लिए अपने कोड को कुछ संशोधनों है:
csv = []
rows = $('#data tr');
for(i =0;i < rows.length;i++) {
cells = $(rows[i]).find('td,th');
csv_row = [];
for (j=0;j<cells.length;j++) {
txt = cells[j].innerText;
csv_row.push(txt.replace(",", "-"));
}
csv.push(csv_row.join(","));
}
output = csv.join("\n")
सुधार:
for
पाश उपयोग
कितना डेटा नहीं है बनाते हैं? क्या यह नौकरी से बाहर है या आपको इसे कई बार चलाने की आवश्यकता होगी? –
बहुत यकीन है कि आपको पृष्ठ को पार्स करना होगा और डेटा से सीएसवी मैन्युअल रूप से उत्पन्न करना होगा। – Jim
संभवतः http://stackoverflow.com/questions/2627162/how-to-convert-html-to-csv –