canvas画表格

4 篇文章 0 订阅
1 篇文章 0 订阅

在这里插入图片描述

data数据格式:

[
{“num”:388,“dfname”:“砼”,“zdmj”:156679.44,“jzmj”:5197303.22}, {“num”:24,“dfname”:“混”,“zdmj”:12888.83,“jzmj”:428493.83}
]

drawCanvasTable(data) {
      let canvas = document.querySelector("#canv");
      let ctx = canvas.getContext("2d");
      canvas.width = 385 * 2;
      canvas.height = data.length * 40 + 40;
      canvas.style.border = "1px solid #ccc";
      let rectH = 20;
      let rectW = 96;
      ctx.scale(2, 2);
      ctx.lineWidth = 1;
      ctx.strokeStyle = "#ccc";
      ctx.textAlign = "center";

      ctx.fillText(this.text,48,15)
      ctx.fillStyle = "#ff0000";
      ctx.fillText("数量", 144, 15);
      ctx.fillStyle = "#006fff";
      ctx.fillText("建筑面积(㎡)",240, 15);
      ctx.fillStyle = "#07c160";
      ctx.fillText("占地面积(㎡)", 336, 15);

      for (let i = 0; i < data.length; i++) {
        ctx.fillStyle = "#000000";
        ctx.fillText(data[i].dfname, 48, rectH * i + 35);
        ctx.fillStyle = "#ff0000";
        ctx.fillText(data[i].num, 144, rectH * i + 35);
        ctx.fillStyle = "#006fff";
        ctx.fillText(data[i].jzmj, 240, rectH * i + 35);
        ctx.fillStyle = "#07c160";
        ctx.fillText(data[i].zdmj, 336, rectH * i + 35);
      }
      //横线
      for (let i = 0; i < data.length + 2; i++) {
        ctx.moveTo(0, rectH * i);
        ctx.lineTo(canvas.width, rectH * i);
        // ctx.stroke();
      }
      //竖线
      for(let i=0;i<5;i++){
        ctx.moveTo(rectW * i, 0);
        ctx.lineTo(rectW * i, canvas.height);
        ctx.stroke();
      }
    },
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值