# 简介
通用导表工具,支持导出 TS(类型及数据安全), JSON 格式,支持 number、string、boolean、array(可嵌套) 类型的数据格式
# 详细介绍
打开方式

插件面板

- 输入路径:xlsx 存在的目录
- 输出路径:导出配置的目录(注意导出前会清空此目录,需要设置一个独立的文件夹)
表格格式
第一行:属性说明
第二行:导出的属性名
第三行:导出的类型
第四行:数据(数组类型依靠 JSON 解析)
注意表名需为
c_开头才会识别为配置表,可自行修改
导出的 TS 示例
绝对的类型及数据安全,防止外部修改
/* eslint-disable */
export type type_example_config<
T = Record<
number,
{
/** ID */
id_n: number;
/** test */
test_n: number;
/** test2 */
test_s: string;
/** test3 */
test_b: boolean;
/** test4 */
test: [number, string[], number[][]];
}
>
> = {
readonly [P in keyof T]: T[P] extends Function
? T[P]
: type_example_config<T[P]>;
};
/** 示例配置/c_example */
export const example_config: type_example_config = new Proxy(
{
[1]: {
id_n: 1,
test_n: 1,
test_s: "2",
test_b: true,
test: [
1,
["你好", "世界"],
[
[0, 1, 2],
[3, 4, 5],
],
],
},
[2]: {
id_n: 2,
test_n: 4,
test_s: "5",
test_b: false,
test: [
1,
["你好", "世界"],
[
[0, 1, 2],
[3, 4, 5],
],
],
},
},
{
get(target, key): any {
if (!freeze_tab[key]) {
freeze_tab[key] = true;
deep_freeze(target[key]);
}
return target[key];
},
set() {
return false;
},
}
);
const freeze_tab: Record<PropertyKey, boolean> = {};
function deep_freeze<T extends object>(object_: T): T {
const prop_name_ss = Object.getOwnPropertyNames(object_);
prop_name_ss.forEach((v_s) => {
const value = object_[v_s as keyof T];
if (value && typeof value === "object") {
deep_freeze(value);
}
});
return Object.freeze(object_);
}
# 下载
xlsx-tool.zip (245.5 KB)
# 相关
QuickPlugin:




