学习Windows excel转json工具实现 1

Windows excel转json工具实现

excel:
在这里插入图片描述

工具截图:
在这里插入图片描述
生成的json:
在这里插入图片描述
工具的整体难度还是比较小的
主要在于excel中json的格式定义和转成json的逻辑的编写
还需要有一些windows编程的api知识
本人是服务器对ui调整比较陌生所以
UI的布局没有仔细调整 主要先实现了功能
excel里的类型定义只是个常用的 可以根据需求进行调整和逻辑修改

暂时分为三个部分介绍(有空就发):
主要头文件
主要源文件
和使用的windows窗口api

依赖第三方库

CJson 用于读取json的配置 地址
xlnt 用于读取excel 地址

准备

vs版本2022
vs创建桌面应用程序
将上述依赖库编译成库导入cpp工程

主要头文件介绍

初始的一些定义:

//Define.h
#define H_DEFINE
#define DATAROW_USNAME 1		//英文名
#define DATAROW_CNNAME 2		//中文名字
#define DATAROW_FIELDTYPE 3		//字段类型
#define DATAROW_BEGIN 4			//数据开始的行

#define T_INT _T("int") //整型
#define T_INTARR _T("int[]")//整形数组
#define T_STRING _T("string")//字符串
#define T_TABLE _T("table{")//表 向后延申中间可以有多个 int string
#define T_TABLEARR _T("table[]{")//表组向后和向下延申 每行表示一个表元素
#define T_TABLEEND _T("}")//表结构的结尾

#define DUF_INT 0 //整形默认值
#define DUF_STRING  _T(" ")//字符串默认值
#include <string>
#include <iostream>
//自适应字符集
#ifdef UNICODE
typedef  std::wstring TSTR;
typedef  std::wstringstream TSS;
typedef	 std::fstream TFS;
#define COUT std::wcout
#else
typedef  std::string TSTR;
typedef  std::stringstream TSS;
typedef	 std::fstream TFS;
#define COUT std::cout
#endif // UNICODE
//ExcelOperator.h 使用xlnt 对excel的读取和保存数据
//转换逻辑的主要实现类
#pragma once
#ifndef H_EXCELOPERATOR
#define H_EXCELOPERATOR
#include "Define.h"
#include <map>

class SheetOperator//记录excel里每个单元的数据 转成json
{
public:
	void WriteIntData(TSS& context, const TSTR& fieldName, TSTR& data);
	void WriteIntArrData(TSS& context, const TSTR& fieldName, TSTR& data);
	void WritStringData(TSS& context, const TSTR& fieldName, TSTR& data);
	void WriteTableData(TSS& context, const TSTR fieldName, int startCol, int endCol,int row);
	void WriteTableArrData(TSS& context, const TSTR fieldName, int startCol, int endCol, int startRow, int endRow);
	//读取excel后的数据
	//结构 row:<col,data>
	std::map<int, std::map<int, TSTR>> m_ExcelData;
	TSTR m_Context;
};
class ExcelOperator
{
public:
	ExcelOperator () {}
	~ExcelOperator();
	void ReadExcel(TSTR filePath);//读取excel
	void CreateConfig();//生成json的输出内容
	void ClearSheet();
	void OutFile();//输入到文件
	inline const TSTR& GetOutData(){ return m_OutData; }
private:
	//读取excel后的数据
	//结构 row:<col,data>
	//std::map<int, std::map<int, TSTR>> m_ExcelData;
	//TSTR m_ConfigName;
	//TSTR m_Context;
	std::map<TSTR, SheetOperator*> m_SheetMap;//每个单元的数据
	TSTR m_OutPath;		//输入excel的地址如果没有配置输出地址就使用这个地址输出
	TSTR m_ConfigName;	
	TSTR m_OutData;		//转换的json字符串
};
#ifndef H_EXCELPATH
#define H_EXCELPATH
#include <vector>

#include "Define.h"
//用于保存选择的excel地址和文件名 
class ExcelPath
{
public:
	ExcelPath(){}
	TSTR GetSelectFolderPath() { return m_SelectFolderPath; }
	inline void SetSelectFolderPath(TSTR path)
	{
		m_LastPath = m_SelectFolderPath;
		m_SelectFolderPath = path;
	}
	bool LoadFileName();
	inline const std::vector<TSTR>& GetReadFileName()
	{
		return m_FilePathInSelect;
	}
	void SetSelFilePath(const TSTR path) { m_SelectFilePath = path; }
	TSTR GetSelFilePath() { return m_SelectFilePath; }
private:
	std::vector<TSTR> m_FilePathInSelect;//文件夹下的excel文件名列表
	TSTR m_SelectFolderPath;//选择的excel文件夹
	TSTR m_SelectFilePath;//选择的excel文件
};

#endif // !H_EXCELPATH

//工具配置读取 
#ifndef H_MYCONFIG
#define H_MYCONFIG
#include <string>
#include"Define.h"

class MyConfig
{
public:
	MyConfig(){}
	bool LoadConfig(TSTR path);
	inline TSTR GetDefaultOpenFolder() { return m_DefaultOpenFolder; }
	inline TSTR GetJsonOutFolder() { return m_JsonOutFolder; }
private:
	TSTR m_DefaultOpenFolder;//默认的excel 文件夹地址
	TSTR m_JsonOutFolder;//json文件的输出地址
};
#endif // !H_MYCONFIG

如果有错误的地方欢迎指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Windows上的JSON格式化应用程序可用于将JSON数据换为易于阅读和理解的格式。这样的应用程序通常具有以下功能和用途: 1. JSON数据格式化:JSON格式化应用程序可以将JSON字符串换为带有缩进和换行符的易于阅读的格式。这使得开发人员和分析师更容易理解和分析复杂的JSON数据。 2. 文件编辑和保存:JSON格式化应用程序通常支持打开和编辑JSON文件,并可以保存为格式化的JSON文件。这使得用户可以轻松地对JSON数据进行修改和保存。 3. JSON语法验证:JSON格式化应用程序可以检查JSON数据的语法是否正确。它可以报告任何语法错误,帮助开发人员和用户更容易地发现和纠正错误。 4. 数据浏览和搜索:JSON格式化应用程序通常提供一个用户友好的界面来浏览和搜索JSON数据。用户可以展开和收起不需要的部分,并使用搜索功能快速定位特定的数据。 5. 数据导入和导出:JSON格式化应用程序通常支持将JSON数据导入和导出到其他格式,如CSV或Excel。这使得用户可以轻松地在不同的数据源和应用程序之间进行数据交换和共享。 总的来说,Windows上的JSON格式化应用程序提供了一个方便和高效的方式来处理和分析JSON数据。它们帮助开发人员和用户更好地理解和利用JSON数据,提高工作效率和开发效果。 ### 回答2: Windows Json格式化应用是一种可以对Json数据进行格式化和美化的应用程序。Json是一种轻量级的数据交换格式,通常用于在不同的系统之间传递和存储数据。然而,Json数据在传输和阅读方面可能不够直观和友好,这就是为什么需要Json格式化应用的原因。 Json格式化应用可以将复杂的Json数据重新格式化为易于阅读和理解的形式。通过应用程序提供的功能,用户可以将Json数据中的缩进、换行、空格等元素进行自定义和调整,使数据更加结构化和清晰。此外,Json格式化应用还可以对Json数据进行排序、过滤和搜索,帮助用户更快速地找到所需的信息。 在Windows平台上,有许多Json格式化应用可供选择。其中一些应用程序具有直观的用户界面,使用户可以通过简单的拖放或导入文件的方式加载和处理Json数据。应用程序通常提供实时预览功能,以便用户可以即时看到格式化后的结果,并进行必要的调整和修改。 此外,Json格式化应用通常还具有批量处理的能力,可以同时处理多个Json文件或大量的Json数据。用户可以设置自定义的格式化规则和选项,以适应不同的数据需求和个人偏好。 总而言之,Windows Json格式化应用是一种方便、易于使用的工具,可以帮助用户将复杂的Json数据重新格式化为更加直观和可读的形式。它使得处理和阅读Json数据变得更加高效和方便,减少了人工解析的工作量,提高了工作效率。 ### 回答3: Windows操作系统上有很多可以用于JSON格式化的应用程序。JSON格式化是将JSON数据化成可读性更好的形式,使其更易于理解和修改。以下是一些常见的Windows JSON格式化应用: 1. Visual Studio Code:这是一款功能强大的代码编辑器,它支持多种编程语言,并且内置了很多插件。其中之一就是用于JSON格式化的插件。通过该插件,用户可以轻松地对JSON数据进行格式化和美化。 2. Notepad++:这是一个免费的文本编辑器,它支持多种编程语言,并且可以轻松地格式JSON数据。用户只需要将JSON数据复制到Notepad++中,然后选择合适的选项即可完成格式化。 3. JSONLint:这是一个在线的JSON格式验证和格式工具。用户可以将JSON数据复制到JSONLint的网站上,然后点击“格式化”按钮即可完成格式化。此外,JSONLint还会显示可能存在的语法错误,帮助用户更好地检查和修复JSON数据。 4. JSON Viewer:这是一个可视化的JSON格式工具,用户可以轻松地在Windows上安装并使用。它可以将JSON数据以树状结构展示,方便用户查看和编辑JSON数据的各个部分。 总之,Windows操作系统上有多种JSON格式化的应用程序可供选择。这些应用程序提供了方便快捷的方式,帮助用户更好地理解和编辑JSON数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值