Excel Editor 实现 (Virtual Table 部分)
该小项目已经初步完成,写该文章是来练习写文章的。 目前文章进度较慢。
技术栈
- react (hooks)
- typescript
项目及微软ExcelOnline
喜欢就给上star吧
背景
面试需要做一个小项目,下面是该项目的题目:
使用 TypeScript 开发一个简易版的 Excel WebApp,实现 column & row sort,cell edit,cell calculate 等,可以定义该 MVP 功能集。可以不借助框架或者使用主流框架
问题
- Typescript 以前有了解,但是是第一次使用,简单的使用应该不成问题。
- Excel 是要实现到何种程度?
- 功能实现,排序,编辑好说,计算这一个是要实现与Excel相同的函数功能么?
- 框架还是要用的,毕竟时间有限这里准备直接使用create react app来开始项目
思考
从上面总结的问题只有两个地方比较不确认。
- 描述中提到了Excel, Excel只是表格,如果只是做成简单的表格恐怕不能得到太多的关注,这里决定做出与Excel一样的VirtualTable功能
- 基于上面的virtualtable,实现排序编辑和计算的功能。
基本的方向定了后便是整个实现步骤
- 基本的virtualtable实现
- 选区功能的实现
- 基于选区功能的其它功能实现(设计成插件方式,各个功能独立分隔)
Virtual Table 实现
如图所示,我们渲染的表格将以上图所示进行动态计算 (横向同理)
- 考虑到视口大小是不固定以及每一页的大小是固定的,可能会出现当前视口远远大于固定的页面大小,就会出现预加载的内容都无法填充当前视口。我们将引入一个动态的变量来加大Perload和Rearload页面的数量以解决这个问题。具体处理便是 Math.ceil(offsetHeight / Page(水平或者垂直)Size)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。