2015-09-06 77 views
2

我有这个页面上100个table S和每个人都有一个checkbox。我的目标是将每个具有相应的checkbox的表的内容下载到一个cvs文件中。这是表格的代码。如何将多个表的内容下载到CSV文件

for(int i = 0; i <100; i++){%> 
<table style="text-align: left;" id="Table<%= i %>" cellpadding="5" cellspacing="2" frame="box"> 
    <input type="checkbox" name='checkbox<%= i %>' checked> Include <br> 
    <%String[][] p = players1.remove(0); 
    for(int j=0;j<9;j++){ %> 
    <tr> 
    <%for(int k=0;k<10;k++){%> 
    <td style="vertical-align: top"><%= p[j][k]%><br></td> 
    <%}%> 
    </tr> 
    <%} %> 

这是我页面上的表格的picture以帮助可视化。

回答

0

虽然没有提到确切的语言,一个可能的选择是检查在框中选择第一,如果选择框的表。

打印每个表不与逗号分隔值。

这样你就可以C/P所有的数据到一个文件中,并准备好被用作这样的。

在其他语言如PHP,你可以明确地改变了头,迫使网站下载一个特定的文件到您的计算机而不是开辟一个裸网页。

+1

这是JSP。你的第一个建议绝对不是我要找的。而你的第二个建议不起作用,因为我不希望每次都下载这些信息。我希望能够首先查看它并选择我想要包含在csv中的那些。此外,还需要在页面上显示不会包含在csv中的信息。 –

0

我不是Jquery那么多熟悉的。这是我找到的一个解决方案。把你的table放在一个div与一些id(myDiv)。但是这不建议把java代码写入scriplet标签so avoid it

JSP代码:

<input type="button" value="Download" id="btn"/> 
<% 
for(int i = 0; i <10; i++){ 
%> 
<div id="myDiv"> 
<table id="table<%=i%>"> 
    <input type="checkbox" value='<%=i%>' class="use-class"> Include <br> 
    <% 
    for(int j=0;j<9;j++){ %> 
    <tr> 
    <%for(int k=0;k<10;k++){%> 
    <td><%="abc"+i+j+k%></td> 
    <%}%> 
    </tr> 
    <%} 
    }%> 
    </table> 
    </div> 

脚本代码在JSP:

<script> 
$(document).ready(function() { 
$("#btn").click(function(){//Called when you clicks on Download button 
var data = Array(); 
var result=""; 
$('input:checkbox.use-class').each(function() { 
//get all checked checkboxes 
if(this.checked) 
{ 
var va="table"+$(this).val();//table id to get data 

$('#'+va+' tr').each(function(i, v){//get content of all rows of above table id 
    data[i] = Array(); 
    $(this).children('td').each(function(ii, vv){ 
     data[i][ii] = $(this).text(); 
    }); 
}); 
result+=data.join(",")+"##";//appending the single table result 
} 
}); 
alert(result); 
//Now pass result that contains all content of all tables to JSP with Ajax call to download 
}); 
}); 
</script> 
相关问题