npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

windy-quicktable

v1.3.125

Published

本配表工具支持按照固定格式配表, 并使用导表插件导出

Readme

QuickTable 表格工具使用说明书

本配表工具支持按照固定格式配表, 并使用导表插件导出

表格格式定义

数据表

表格头格式: 数据表格以行为单位,每一列为一个数据字段。前三行为预留项,分别为字段标签字段导出名称字段数据类型。其中字段导出名称主要用于导出给项目开发使用, 该项选填即可。例如:

ID | 名称 | 解锁等级
-|-|- ID | name | unlocklv uid | *trstr | number 1 | 母鸡 | 10 2 | 公鸡 | 20 3 | 大肥牛 | 30 4 | 小猪头 | 40

当只配置字段标签,则表格在导出时会忽略该字段:

ID | 该字段会被忽略 | 名称 | 解锁等级
-|-|-|- ID | | name | unlocklv uid | | *trstr | number 1 | 备注1 | 母鸡 | 10 2 | 备注2 | 公鸡 | 20 3 | 备注3 | 大肥牛 | 30 4 | 备注4 | 小猪头 | 40

字段数据类型

每一个字段必须标注明确的数据类型,数据类型主要有2大作用,一是帮助策划完成基础的数值填写检查,例如一个字段指向另一张表中的某一个uid字段,此时可以字段检查目标ID是否存在;二是精确的数据类型可以自动生成常用的查询代码,提升程序的开发效率。目前支持以下数据类型:

类型 | 默认值 | 作用 | 常用写法
-|-|-|- any | null | 表示任何数据,通常用于一个通用性字段。一般不用。 | 可填写任何值,数值不会经过任何处理 | uid | 0 | 表示该表的主键,一般一张表只有一个该字段,导出时会检查该列是否有重复项 | 从1开始依次累加 | fk | 0 | 表示外键,指向当前表或另一张表中的某一个uid字段,导出时会自动检查目标id是否存在并生成程序所使用的快速查询代码,填写是需要附加表名和字段名。例如:fk gameconfig id 表示指向 gameconfig表中的id字段,当fk指向非uid类型的字段,则将理解为可匹配多行 | 整数或留空 | fk[] | [] | 功能与fk相同,这里可以表示一个数组来指向多个id。例如:fk[] skillconfig id | 用分号分割每一项。如:1001;1002;1003 | key | "" | 该字段主要用于生成一张键值查找的map,例如从某个字符串可以快速拿到某一行数据,可以提升程序查询数据的效率 | 不重复的字符串 | number | 0 | 数值 | 任何数字 | number[] | [] | 数值数组 | 用分号分割,例如:1.5;2.5;3 | float | 0 | 数值 | 任何数字 | float[] | [] | 数值数组 | 用分号分割,例如:1.5;2.5;3 | int | 0 | 数值 | 32位整数 | int[] | [] | 数值数组 | 用分号分割,例如:1;2;3 | long | 0 | 数值 | 整数 | long[] | [] | 数值数组 | 用分号分割,例如:1;2;3 | bool | false | 布尔值 | 可填写true或false,或者用 1 0 表示 | bool[] | [] | 布尔值数组 | 同上,用分号分割 true;true;false 或 1;1;0 | string | "" | 字符串 | 字符串文本 | string[] | [] | 字符串数组 | 使用两个连续的逗号或分号分割每一段字符串例如:怪物1,,怪物2,,怪物3 又如:怪物1;;怪物2;;怪物3 | trstr | "" | 需要翻译的字符串 | 功能与文本相同 | trstr[] | [] | 需要翻译的字符串数组 | 功能与文本相同,使用两个连续的逗号或分号分割每一段字符串例如:怪物1 | note | "" | 不需要导出的备注文本 | 任意文本 | object | null | 可以填写任何Json对象,通常不建议使用,因为这会导致程序不能准确识别里面的类型,不能在运行前得知里面是否有错误 | 例如 {"a":1,"b":666,"c":[1,2,3]} | object[] | [] | 功能同上,但能保证导出后是一个数组,即使只填写了一个对象 | 例如 [1,2,3] 或 [{"a":1,"b":666,"c":[1,2,3]},2,[3,3,3]] |

自定义复合类型

类型 | 默认值 | 作用 | 常用写法
-|-|-|- @($type,$type) | | 二元元组 | 固定格式 1|2 | @($type,$type)[] | | 二元元组数组 | 固定格式 1|2;;2|3 |

key的用法

ID | 键 | 值 | 表述 -|-|-|- ID | key | value | des uid | key | any | string 1 | mailUnlock | 10 | 邮箱解锁等级 | 2 | shareOpen | true | 开启分享 | 3 | eggUnlcok | 20 | 扭蛋解锁等级 | 4 | fps | 30 | 游戏运行帧数 |

fk的用法

heroconfig 英雄表

英雄ID | 英雄 | 技能列表
-|-|- id | name | skills | uid | string | fk[] skillconfig id | 1 | 皮卡丘 | 1001;1002;1003 | 2 | 妙蛙花 | 2001;2002;2003 | 3 | 妙蛙种子 | 2001;2002;2003;3001 | 4 | 水箭龟 | 4001;4002;999 |

skillconfig 技能表

技能ID | 技能名称 | 攻击力 | 攻击方式 -|-|-|- id | name | attack | attacktype uid | string | number | fk attacktypeconfig id 1001 | 放电 | 100 | 1 1002 | 十万伏特 | 1000 | 2 1003 | 撞击 | 200 | 1

attacktypeconfig 攻击方式表

ID | 名称 | 其他属性
-|-|- id | name | ... | uid | string | ... | 1 | 普通攻击 | ... | 2 | 范围攻击 | ... |

命令行

以下内容需要项目组主程完全掌握

表格导出

导出表格,可以每张表格单独导出,或是全部数据一起导出。

  • 安装全局命令工具
$ npm i -g windy-quicktable
  • 安装导表插件 导表工具依赖导表插件导出具体格式, 具体安装方法参照插件各自文档说明, 如: typescript导表工具
$ npm i -g export-table-plugin-插件名
  • 命令行基本格式
$ call quicktable export ${配表路径} ${导出路径} --tags 插件名:插件标签

例如:
# 导出MEEC多语言表
$ call quicktable export ../../tools/meta-utils/MEEC_xls/奇妙的身体/i18n ./packs/behaviors/texts --tags meec:lang

针对不同场景应用meta sheet

  • meta sheet命名: 场景.meta

  • 重载sheet属性: #sheet [-][新sheet名:]旧sheet名

    • 表示新的sheet名替代旧的sheet名
    • -表示不自动继承所有字段, 需要手动继承字段
  • 重载字段: [:-][新字段名[:类型]=]旧字段名

    • 表示使用新的字段名代替旧的字段名, 并用新类型覆盖字段类型
    • 如果没有填新字段名, 那么表示显示声明要继承旧字段
    • -表示显示声明不继承该字段
  • 使用 --scenes 选项指定场景应用meta

# 同时导出针对客户端和服务端的meta配置
$ call quicktable export ../../tools/meta-utils/MEEC_xls/奇妙的身体/i18n ./packs/behaviors/texts --tags meec:lang --scenes server --scene client

按标签导出(待实现)

可以使用tag[]类型给记录加tag, 可用于一份表格分别导出前后端等用途

tags | ID | 名称 | 其他属性
-|-|-|- | | id | name | ... | tag[] | uid | string | ... | c | 1 | 普通攻击 | ... | s | 2 | 范围攻击 | ... |

还可以加一行特殊记录, 用于给字段加tag, 可用于一份表格分别导出前后端等用途

  • 注意字段标签行首字段需要以 # 开头

tags | ID | 名称 | 其他属性
-|-|-|- | | id | name | ... | tag[] | uid | string | ... | | | #c | s,c | s... c | 1 | 普通攻击 | ... | s | 2 | 范围攻击 | ... |

插件开发

参考 导表插件开发指南

开发计划

参考 开发计划