bojue / canvas-excel

基于Canvas开发Excel的技术预研项目(React)
https://bojue.github.io/canvas-excel
71 stars 11 forks source link

canvas-excel

基于Canvas开发的Excle技术预研

在线预览

demo

运行

git clone https://github.com/bojue/canvas-excel.git

npm install 

npm run dev //本地运行

npm run build //构建生产包

浏览器打开

http://localhost:4000/

Excel单元格对象定义

ExcelDataItem = [
    [
        'colums',    // 列数
        'rows',      // 行数,
    ],     
    'txt', // 内容类型 txt|img|...
    'value', // 内容
    {
        'text':{
            'color':'#000',
            'fontStyle': 'normal' || 'italic',
            'fontFamily':'微软雅黑',
            'fontSize':10,
            'fontWeight': 'normal' || 'bold',
            'lineHeight':10,
            'textAlign': 'center' || 'right' || 'center',
        },
        'line':{
            'textLine':'underline' || 'normal'
        },
        'rect': {
            'fillStyle':"#fff"
        }
    }
]

待优化方案

  1. 工具栏文字输入节流优化/局部映射渲染
  2. 二分法判断单元格区域选择坐标
  3. 双缓存处理区域选择交互

实现功能

工具栏

单元格

区域选择

优化方法

优化方案简单记录

TODO

Doing

目前组件化根据excel的功能布局拆分,多层级需要引入状态管理的内容