是否可以根据单元格的内容创建N个表,例如我有下表:
<table>
<tr>
<td>Row 1 Colum 1</td>
<td>Row 1 Colum 2</td>
<td>Row 1 Colum 3</td>
<td>1</td>
</tr>
<tr>
<td>Row 2 Colum 1</td>
<td>Row 2 Colum 2</td>
<td>Row 2 Colum 3</td>
<td>2</td>
</tr>
<tr>
<td>Row 3 Colum 1</td>
<td>Row 3 Colum 2</td>
<td>Row 3 Colum 3</td>
<td>2</td>
</tr>
</table>
第四列有1和2个值,基于此,我想创建2个表,每个不同的数字一个,在本例中为1和2,
结果:
表1
<table>
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
<th>Column 4</th>
</tr>
</thead>
<tbody>
<tr>
<td>Row 1 Colum 1</td>
<td>Row 1 Colum 2</td>
<td>Row 1 Colum 3</td>
<td>1</td>
</tr>
</tbody>
</table>
表2
<table>
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
<th>Column 4</th>
</tr>
</thead>
<tbody>
<tr>
<td>Row 2 Colum 1</td>
<td>Row 2 Colum 2</td>
<td>Row 2 Colum 3</td>
<td>2</td>
</tr>
<tr>
<td>Row 3 Colum 1</td>
<td>Row 3 Colum 2</td>
<td>Row 3 Colum 3</td>
<td>2</td>
</tr>
</tbody>
</table>
EDIT。
从CSV中提取数据,我正在使用jquery-csv来创建表格。 此CSV有200列,其中包含有关来自不同员工的交易的信息,每行显示交易明细,例如,员工1有3个交易,其中2个交易具有相同的ID,另一个具有不同的ID:
idEmployee|Transaction|idTransaction|..|..|..|
1 |Buy X thing| 001 |..|..|..|
1 |Buy Y thing| 001 |..|..|..|
1 |Buy Z thing| 002 |..|..|..|
这个表可以有多个具有多个事务id的员工,我想要的是为每个事务编号创建一个表,例如,最后一个表的结果将是每个事务id的2个表:
TABLE1
idEmployee|Transaction|idTransaction|..|..|..|
1 |Buy X thing| 001 |..|..|..|
1 |Buy Y thing| 001 |..|..|..|
TABLE2
idEmployee|Transaction|idTransaction|..|..|..|
1 |Buy Z thing| 002 |..|..|..|
到目前为止,我在代码中的基础是根据行数将表拆分为两个:
var rows = $("table").find ("tr").slice(3);
var $tableCopy = $("content").append("<table id='tableCopy'><tbody></tbody></table>");
$tableCopy.find("tbody").append(rows);
$("table").find ("tr").slice(3).remove();
有问题的项目是这样的:用户有一个包含大量员工数据的CSV,他想根据CSV信息进行报告打印,所以他在页面上输入CSV,然后选择要在报告中显示的列,系统会创建多个报告,其中只包含用户选择的列,并且由于CSV具有多个员工的信息,因此系统会创建多个报告。此外,用户可以进行报告的布局,但这是另一天哈哈。
编辑2: 我创建了一些基于id报告数量创建多个表的代码,首先我创建一个包含id报告总数的数组:
$scope.getReportsID = function(){
$scope.reportsID = [];
//Loop through the array data that contains the table
for(var row in $scope.data){
//Loop through the specific cell
for(var item in $scope.data[row]){
//The reportID is on cell 19, if that id exist on the array
//break the loop but if doesn't exist, check if the data is not
//an empty string, if not, push the data on the array
if((jQuery.inArray( $scope.data[row][19], $scope.reportsID )) !== -1)
break;
if($scope.data[row][19] !== "")
$scope.reportsID.push($scope.data[row][19]);
}
}
//We call createTables function
$scope.createTables();
}
然后根据reportsID的数量
计算表的数量CREATE TABLES功能
$scope.createTables = function() {
//Loop through the array that contains the diferent reporst id's
for(var i in $scope.reportsID){
//Loop through the array data that contains the table
for(var row in $scope.data){
//If data on the cell 19 of the current row equals the current
//element of the reportsID array,break the loop and create a table
if( $scope.data[row][19] === $scope.reportsID[i])
break;
}
$('#hereTables').append('<table id=table' + i + '><tbody></tbody>' + '</table>');
}
}
到目前为止,这段代码工作并创建了相当于不同id数量的表的数量,现在我只需填写它,我还不知道,但我正在研究它哈哈
答案 0 :(得分:0)
据我所知,你想把一张大表分成两个小表...例如:如果你在一个表中有50个条目,你想要制作25个条目中的两个表... 这样做将条件应用于循环。 例如:
for (i = 0; i < (YourArray.length)/2; i++) {
for (j = 0; j < YourLimitOfeachTable; j++) {
}
}