前端多行表格拼接和打印

先上图看效果。
在这里插入图片描述
总体样式就如上所示。根据数据的数组里面的条数来决定单元格的行数。总体思想是先用sessionStorage.getItem()取到数组里面的数据,然后进行遍历,把数组里面的对象一个个拼接起来,最后就是一个多行的表格。

        <div class = "returnInstructionTable">
            <table class="table table-bordered table-condensed" id='accessoryTable'>
            </table> 
        </div>
在body里面加上如上的代码,记得设置id,到时候会发表格插入在这个id的这个位置。
<script>
    window.onload = function() {
    //拿到数据
        const printdataAccessory = JSON.parse(sessionStorage.getItem('printdataAccessory'))
        //这表是表格的表头的位置,不需要重复
            let sccessoryList = `
            <tr>
                    <th style="width: 100px;">退单原因</th>
                    <th style="width: 80px;">供应商名称</th>
                    <th style="width: 80px;">采购订单号</th>
                    <th style="width: 80px;">发票号</th>
                    <th style="width: 80px;">发票金额</th>
                    <th style="width: 80px;">发票张数</th>
            </tr>`
            //对拿到的数据进行遍历,+= 就是起到了一个拼接的作用
            printdataAccessory.forEach((element,index) => {
                sccessoryList += `
                <tr>
                    <td style="width: 100px;"><span id="returnReason${index}"></span></td>
                    <td style="width: 80px;"><span id="supplier${index}"></span></td>
                    <td style="width: 80px;"><span id="purchaseOrder${index}"></span></td>
                    <td style="width: 80px;"><span id="invoiceCode${index}"></span></td>
                    <td style="width: 80px;"><span id="billValue${index}"></span></td>
                    <td style="width: 80px;"><span id="billNum${index}"></span></td>
                </tr>
                `
            // get到对应的ID,然后把拼接好的值sccessoryList给到他
            document.getElementById('accessoryTable').innerHTML = sccessoryList
            console.log('sccessoryList',sccessoryList);
        });
	//这边同理其实,你想想上边是单元格的一个个循环,这边当然也是要把数据循环出来一个个赋值给到单元格里面。
    setTimeout(() => {
        const printdataAccessory = JSON.parse(sessionStorage.getItem('printdataAccessory'))
        console.log('printdataAccessory',printdataAccessory)
        printdataAccessory.forEach((element,index) => {
            document.getElementById(`returnReason${index}`).innerHTML = printdataAccessory[index]?.name
            document.getElementById(`supplier${index}`).innerHTML = printdataAccessory[index]?.supplierName
            document.getElementById(`purchaseOrder${index}`).innerHTML = printdataAccessory[index]?.supplierCode
            document.getElementById(`invoiceCode${index}`).innerHTML = printdataAccessory[index]?.invoiceCode
            document.getElementById(`billValue${index}`).innerHTML = printdataAccessory[index]?.amount
            document.getElementById(`billNum${index}`).innerHTML = printdataAccessory[index]?.pageNum
        })
        window.print()
    },1000)
}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值