要在JavaScript中实现打印表格的分页功能,可以按照以下步骤进行:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Table Pagination and Print</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="table-container">
<table id="myTable">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<!-- 示例数据 -->
<tr><td>1</td><td>Alice</td><td>25</td></tr>
<tr><td>2</td><td>Bob</td><td>30</td></tr>
<!-- 更多数据 -->
</tbody>
</table>
</div>
<button onclick="printTable()">Print Table</button>
<script src="script.js"></script>
</body>
</html>
/* 打印样式 */
@media print {
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid black;
padding: 8px;
}
.page-break {
page-break-after: always;
}
}
function printTable() {
const table = document.getElementById('myTable');
const rows = table.rows;
const pageSize = 10; // 每页显示的行数
let currentPage = 1;
// 隐藏所有行
for (let i = 1; i < rows.length; i++) {
rows[i].style.display = 'none';
}
// 显示当前页的行
for (let i = 1; i <= pageSize && i < rows.length; i++) {
rows[i].style.display = '';
}
// 打印当前页
window.print();
// 恢复所有行的显示
for (let i = 1; i < rows.length; i++) {
rows[i].style.display = '';
}
// 如果需要分页打印,可以使用以下逻辑
/*
for (let i = 1; i < rows.length; i += pageSize) {
for (let j = 1; j <= pageSize && j < rows.length; j++) {
rows[i + j - 1].style.display = (j <= pageSize) ? '' : 'none';
}
window.print();
for (let j = 1; j <= pageSize && j < rows.length; j++) {
rows[i + j - 1].style.display = '';
}
}
*/
}
printTable
函数首先隐藏所有行,然后显示当前页的行。window.print()
进行打印。通过以上步骤和代码示例,可以实现一个简单的表格分页打印功能。
领取专属 10元无门槛券
手把手带您无忧上云