有哪些开源的Excel数据导入工具可用?

2026-05-05 20:553阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计965个文字,预计阅读时间需要4分钟。

有哪些开源的Excel数据导入工具可用?

功能:支持int、float、bool、string基本类型+支持数组+支持字典+支持枚举+支持Unity类型Vector3、Vector2、Color+自动生成C#类+单个Excel中多sheet,依赖导出+使用+设置config.txt文件,按需配置

功能

  • 支持int、float、bool、string基础类型
  • 支持数组
  • 支持kv
  • 支持枚举
  • 支持unity类型vector3,vector2,color
  • 自动生成csharp类
  • 单个excel中多个sheet,依次导出
使用
  1. 设置config.txt文件,按需求配置;

#为注释行必须;结尾

#excel存放路径; excelPath:./Excel/; #数据保存路径; dataPath:./DataTable/; #c#类保存路径; classPath:./CSharp/; #输出类型; exportType:Json; isExportServer:False

  1. 双击运行DataTable.exe,等待执行完毕;
配表
  • 第一行注释

  • 第二行字段类型

  • 第三行变量名(属性名)

  • 第一列留空

  • 数组:类型+[] e.g: int[]

  • kv使用

    类型:dic<string,int>

    变量名:变量名+:+key值

    e.g:

    dic<string,float> dic<string,float> dic<string,float> Attribute:atk Attribute:def Attribute:spd
  • 枚举:自动生成的枚举类型从1开始,Enum类型为:Enum+变量名字段;

Json序列化

使用json库需要对Vector3等Unity字段魔改;

Litjson库魔改:将自定义类型注册进json库;

namespace LitJson.Extensions { public static class JsonExtensions { public static void WriteProperty(this JsonWriter w, string name, long value) { w.WritePropertyName(name); w.Write(value); } public static void WriteProperty(this JsonWriter w, string name, string value) { w.WritePropertyName(name); w.Write(value); } public static void WriteProperty(this JsonWriter w, string name, bool value) { w.WritePropertyName(name); w.Write(value); } public static void WriteProperty(this JsonWriter w, string name, double value) { w.WritePropertyName(name); w.Write(value); } } }


using UnityEngine; using System; using System.Collections; using LitJson.Extensions; namespace LitJson { #if UNITY_EDITOR [UnityEditor.InitializeOnLoad] #endif /// <summary> /// Unity内建类型拓展 /// </summary> public static class UnityTypeBindings { static bool registerd; static UnityTypeBindings() { Register(); } public static void Register() { if (registerd) return; registerd = true; // 注册Type类型的Exporter JsonMapper.RegisterExporter<Type>((v, w) => { w.Write(v.FullName); }); JsonMapper.RegisterImporter<string, Type>((s) => { return Type.GetType(s); }); // 注册Vector2类型的Exporter Action<Vector2, JsonWriter> writeVector2 = (v, w) => { w.WriteObjectStart(); w.WriteProperty("x", v.x); w.WriteProperty("y", v.y); w.WriteObjectEnd(); }; JsonMapper.RegisterExporter<Vector2>((v, w) => { writeVector2(v, w); }); // 注册Vector3类型的Exporter Action<Vector3, JsonWriter> writeVector3 = (v, w) => { w.WriteObjectStart(); w.WriteProperty("x", v.x); w.WriteProperty("y", v.y); w.WriteProperty("z", v.z); w.WriteObjectEnd(); }; JsonMapper.RegisterExporter<Vector3>((v, w) => { writeVector3(v, w); }); // 注册Vector4类型的Exporter JsonMapper.RegisterExporter<Vector4>((v, w) => { w.WriteObjectStart(); w.WriteProperty("x", v.x); w.WriteProperty("y", v.y); w.WriteProperty("z", v.z); w.WriteProperty("w", v.w); w.WriteObjectEnd(); }); // 注册Quaternion类型的Exporter JsonMapper.RegisterExporter<Quaternion>((v, w) => { w.WriteObjectStart(); w.WriteProperty("x", v.x); w.WriteProperty("y", v.y); w.WriteProperty("z", v.z); w.WriteProperty("w", v.w); w.WriteObjectEnd(); }); // 注册Color类型的Exporter JsonMapper.RegisterExporter<Color>((v, w) => { w.WriteObjectStart(); w.WriteProperty("r", v.r); w.WriteProperty("g", v.g); w.WriteProperty("b", v.b); w.WriteProperty("a", v.a); w.WriteObjectEnd(); }); // 注册Color32类型的Exporter JsonMapper.RegisterExporter<Color32>((v, w) => { w.WriteObjectStart(); w.WriteProperty("r", v.r); w.WriteProperty("g", v.g); w.WriteProperty("b", v.b); w.WriteProperty("a", v.a); w.WriteObjectEnd(); }); // 注册Bounds类型的Exporter JsonMapper.RegisterExporter<Bounds>((v, w) => { w.WriteObjectStart(); w.WritePropertyName("center"); writeVector3(v.center, w); w.WritePropertyName("size"); writeVector3(v.size, w); w.WriteObjectEnd(); }); // 注册Rect类型的Exporter JsonMapper.RegisterExporter<Rect>((v, w) => { w.WriteObjectStart(); w.WriteProperty("x", v.x); w.WriteProperty("y", v.y); w.WriteProperty("width", v.width); w.WriteProperty("height", v.height); w.WriteObjectEnd(); }); // 注册RectOffset类型的Exporter JsonMapper.RegisterExporter<RectOffset>((v, w) => { w.WriteObjectStart(); w.WriteProperty("top", v.top); w.WriteProperty("left", v.left); w.WriteProperty("bottom", v.bottom); w.WriteProperty("right", v.right); w.WriteObjectEnd(); }); } } }

后续计划加入protobuf和bytes导出;

计划可导出.go文件;

相比其他导表工具,优势就是简单使用,不用看长长的文档;

有bug或修改建议欢迎交流;

开源地址:github.com/Rebort1012/DataTable.git

有哪些开源的Excel数据导入工具可用?

个人博客:perilla.work


Life is too short for so much sorrow. 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小紫苏!

本文共计965个文字,预计阅读时间需要4分钟。

有哪些开源的Excel数据导入工具可用?

功能:支持int、float、bool、string基本类型+支持数组+支持字典+支持枚举+支持Unity类型Vector3、Vector2、Color+自动生成C#类+单个Excel中多sheet,依赖导出+使用+设置config.txt文件,按需配置

功能

  • 支持int、float、bool、string基础类型
  • 支持数组
  • 支持kv
  • 支持枚举
  • 支持unity类型vector3,vector2,color
  • 自动生成csharp类
  • 单个excel中多个sheet,依次导出
使用
  1. 设置config.txt文件,按需求配置;

#为注释行必须;结尾

#excel存放路径; excelPath:./Excel/; #数据保存路径; dataPath:./DataTable/; #c#类保存路径; classPath:./CSharp/; #输出类型; exportType:Json; isExportServer:False

  1. 双击运行DataTable.exe,等待执行完毕;
配表
  • 第一行注释

  • 第二行字段类型

  • 第三行变量名(属性名)

  • 第一列留空

  • 数组:类型+[] e.g: int[]

  • kv使用

    类型:dic<string,int>

    变量名:变量名+:+key值

    e.g:

    dic<string,float> dic<string,float> dic<string,float> Attribute:atk Attribute:def Attribute:spd
  • 枚举:自动生成的枚举类型从1开始,Enum类型为:Enum+变量名字段;

Json序列化

使用json库需要对Vector3等Unity字段魔改;

Litjson库魔改:将自定义类型注册进json库;

namespace LitJson.Extensions { public static class JsonExtensions { public static void WriteProperty(this JsonWriter w, string name, long value) { w.WritePropertyName(name); w.Write(value); } public static void WriteProperty(this JsonWriter w, string name, string value) { w.WritePropertyName(name); w.Write(value); } public static void WriteProperty(this JsonWriter w, string name, bool value) { w.WritePropertyName(name); w.Write(value); } public static void WriteProperty(this JsonWriter w, string name, double value) { w.WritePropertyName(name); w.Write(value); } } }


using UnityEngine; using System; using System.Collections; using LitJson.Extensions; namespace LitJson { #if UNITY_EDITOR [UnityEditor.InitializeOnLoad] #endif /// <summary> /// Unity内建类型拓展 /// </summary> public static class UnityTypeBindings { static bool registerd; static UnityTypeBindings() { Register(); } public static void Register() { if (registerd) return; registerd = true; // 注册Type类型的Exporter JsonMapper.RegisterExporter<Type>((v, w) => { w.Write(v.FullName); }); JsonMapper.RegisterImporter<string, Type>((s) => { return Type.GetType(s); }); // 注册Vector2类型的Exporter Action<Vector2, JsonWriter> writeVector2 = (v, w) => { w.WriteObjectStart(); w.WriteProperty("x", v.x); w.WriteProperty("y", v.y); w.WriteObjectEnd(); }; JsonMapper.RegisterExporter<Vector2>((v, w) => { writeVector2(v, w); }); // 注册Vector3类型的Exporter Action<Vector3, JsonWriter> writeVector3 = (v, w) => { w.WriteObjectStart(); w.WriteProperty("x", v.x); w.WriteProperty("y", v.y); w.WriteProperty("z", v.z); w.WriteObjectEnd(); }; JsonMapper.RegisterExporter<Vector3>((v, w) => { writeVector3(v, w); }); // 注册Vector4类型的Exporter JsonMapper.RegisterExporter<Vector4>((v, w) => { w.WriteObjectStart(); w.WriteProperty("x", v.x); w.WriteProperty("y", v.y); w.WriteProperty("z", v.z); w.WriteProperty("w", v.w); w.WriteObjectEnd(); }); // 注册Quaternion类型的Exporter JsonMapper.RegisterExporter<Quaternion>((v, w) => { w.WriteObjectStart(); w.WriteProperty("x", v.x); w.WriteProperty("y", v.y); w.WriteProperty("z", v.z); w.WriteProperty("w", v.w); w.WriteObjectEnd(); }); // 注册Color类型的Exporter JsonMapper.RegisterExporter<Color>((v, w) => { w.WriteObjectStart(); w.WriteProperty("r", v.r); w.WriteProperty("g", v.g); w.WriteProperty("b", v.b); w.WriteProperty("a", v.a); w.WriteObjectEnd(); }); // 注册Color32类型的Exporter JsonMapper.RegisterExporter<Color32>((v, w) => { w.WriteObjectStart(); w.WriteProperty("r", v.r); w.WriteProperty("g", v.g); w.WriteProperty("b", v.b); w.WriteProperty("a", v.a); w.WriteObjectEnd(); }); // 注册Bounds类型的Exporter JsonMapper.RegisterExporter<Bounds>((v, w) => { w.WriteObjectStart(); w.WritePropertyName("center"); writeVector3(v.center, w); w.WritePropertyName("size"); writeVector3(v.size, w); w.WriteObjectEnd(); }); // 注册Rect类型的Exporter JsonMapper.RegisterExporter<Rect>((v, w) => { w.WriteObjectStart(); w.WriteProperty("x", v.x); w.WriteProperty("y", v.y); w.WriteProperty("width", v.width); w.WriteProperty("height", v.height); w.WriteObjectEnd(); }); // 注册RectOffset类型的Exporter JsonMapper.RegisterExporter<RectOffset>((v, w) => { w.WriteObjectStart(); w.WriteProperty("top", v.top); w.WriteProperty("left", v.left); w.WriteProperty("bottom", v.bottom); w.WriteProperty("right", v.right); w.WriteObjectEnd(); }); } } }

后续计划加入protobuf和bytes导出;

计划可导出.go文件;

相比其他导表工具,优势就是简单使用,不用看长长的文档;

有bug或修改建议欢迎交流;

开源地址:github.com/Rebort1012/DataTable.git

有哪些开源的Excel数据导入工具可用?

个人博客:perilla.work


Life is too short for so much sorrow. 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小紫苏!