CN110516207B - 一种json文件和excel文件相互转化方法 - Google Patents
一种json文件和excel文件相互转化方法 Download PDFInfo
- Publication number
- CN110516207B CN110516207B CN201910709633.2A CN201910709633A CN110516207B CN 110516207 B CN110516207 B CN 110516207B CN 201910709633 A CN201910709633 A CN 201910709633A CN 110516207 B CN110516207 B CN 110516207B
- Authority
- CN
- China
- Prior art keywords
- data
- file
- json
- excel
- creating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种JSON文件和EXCEL文件相互转化的方法,包括数据库和操作系统,包括如下步骤:1:创建Data数据结构;2:读取JSON配置文件的数据;3:将JSON文件数据反序列化字符串为对象;4:创建Excel文件;5:将数据保存到Excel文件;6:读取Excel中的数据;7:将数据保存到Data对象中;8:将Data对象转换成JSON格式字符串;9:将数据保存到JSON文件。本发明在于提供一种节省时间,大大提高工作效率,易于数据转化的一种JSON文件和Excel文件相互转化的方法。
Description
技术领域
本发明涉及一种文件格式转换技术,尤其涉及一种JSON文件和EXCEL文件相互转化的方法。
背景技术
在软件开发上,当产品面向不同国家地区的用户的时候,操作系统上需要提供多种语言的支持,实现这种需求一般是将不同的语言描述设置成配置文件,当软件系统运行时,根据不同的语言环境或者根据用户选择,系统调用相应的语言配置文件,以达到支持用户需要的语言。
在多语言的实现过程中,需要将翻译人员提供的翻译数据转换成操作系统可用的配置文件。由于翻译人员使用的Excel文件来存储翻译数据,而操作系统中使用的却并非Excel文件作为配置文件,因此在翻译人员提供翻译好的Excel文件后,在传统的做法中,还需要通过人工将Excel中的数据复制粘贴到软件系统中的语言配置文件中,这种方式在数据量少的时候是可行的,但当数据量达到上千上万的时候,这种人工操作的方式就不太现实了,需要耗费大量的时间,严重影响到工作效率。因此,需要一种便捷有效的解决方式来解决此问题。
中国专利申请号为201811043603.4,申请日:2018年09月07日,公开日:2019年03月01日,专利名称是:一种Excel文件转换为JSON文件的方法,该发明公开了一种文件格式转换技术,包括以下几个步骤:步骤A:接收客户端请求的Excel数据;步骤B:以Datatable形式读取Excel数据内的数据,然后遍历Datatable数据为List,最后对List进行反序得到JSON数据;步骤C:接收客户端发送的HTTP请求,读取JSON文件中的基本元素信息然后将信息按照EXCEL文件的排版格式进行排版并获取排版结果;步骤D:调用C++语言函数库将排版结果生成EXCEL文件,获得后将EXCEL文件发送至客户端。与现有技术相比,通过将Excel文件转换为JSON文件方便进行网络HTTP请求使用,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
上述专利文献虽然公开了一种Excel文件转换为JSON文件的方法,但是该方法也无法及时更改系统参数,系统维护成本高,不能适应时代发展的需要。
发明内容
本发明目的是克服现有技术的不足,提供一种节省时间,大大提高工作效率,易于数据转化的一种JSON文件和Excel文件相互转化的方法。
为了实现本发明目的,可以采取以下技术方案:
一种JSON文件和EXCEL文件相互转化的方法,包括数据库和操作系统,该方法包括如下步骤:
步骤1:创建Data数据结构;
步骤2:读取JSON配置文件的数据;
步骤3:将JSON文件数据反序列化字符串为对象;
步骤4:创建Excel文件;
步骤5:将数据保存到Excel文件;
步骤6:读取Excel中的数据;
步骤7:将数据保存到Data对象中;
步骤8:将Data对象转换成JSON格式字符串;
步骤9:将数据保存到JSON文件。
所述步骤1创建Data数据结构是,建立一个专用于数据转换的中间类结构Data类,用于存储JSON格式的数据。
所述步骤2读取JSON配置文件的数据是使用File类的ReadAllText方法将JSON文件中的文本数据全部读取出来,然后存于string变量中。
所述步骤3将JSON文件数据反序列化字符串为对象是使用Newtonsoft.Json库的JsonConvert类的DeserializeObject方法将JSON字符串数据反序列化成Data类的对象数据。
所述步骤4创建Excel文件包括如下步骤:
1、创建一个XSSFWorkbook对象来初始化IWorkbook对象;
2、使用IWorkbook对象的CreateSheet方法来创建Excel中的Sheet;
3、使用C#的File类的Create方法创建Excel文件;
4、使用IWorkbook对象的Write方法将创建的工作簿及Sheet写入Excel
文件中。
所述步骤5将数据保存到Excel文件包括如下步骤:
1、使用FileStream打开文件;
2、使用NPOI库的XSSFWorkbook对象来初始化一个IWorkbook对象打开Excel文件;
3、使用IWorkbook对象的GetSheetAt方法打开要写入数据的Sheet初始化一个ISheet对象;
4、使用ISheet对象的CreateRow方法创建一个数据行初始化IRow对象;
5、使用IRow对象的CreateCell方法创建一个单元格ICell对象;
6、使用ICell对象的SetCellValue将数据写入到单元格中;
7、使用IWorkbook对象将数据写入到FileStream对象中;
8、使用FileStream对象的Write方法将数据写入到Excel文件。
所述步骤6读取Excel中的数据包括如下步骤:
1、使用FileStream类文件打开Excel文件;
2、使用NPOI库的XSSFWorkbook类根据打开的文件初始化IWorkbook对象;
3、使用IWorkbook对象的GetSheetName方法打开需要读取数据的Sheet文件;
4、使用IWorkbook的GetSheet方法根据获取到的Sheet名来初始化ISheet对象;
5、使用ISheet对象的GetRow方法获取要读取的数据行的IRow对象;
6、使用IRow对象的GetCell方法来获取单元格的数据。
所述步骤7将数据保存到Data对象中包括创建一个Data对象,将读取后的数据依次按键值对的方式存储到Data对象中。
所述步骤8将Data对象转换成JSON格式字符串包括读取Excel数据存储到Data对象后,通过JsonConvert的SerializeObject方法将Data对象序列化成json字符串。
所述步骤9将数据保存到JSON文件是使用StreamWrite类的WriteLine方法将JSON字符串数据写入到JSON文件中。
本发明的有益效果是:1、本发明提供了JSON文件和EXCEL文件相互转化的方法,提高开发人员与翻译人员在工作对接上的效率,减少对接时间;2、本发明避免软件翻译中人工复制粘贴引起的数据错误或丢失;3、本发明操作简便,使开发人员与翻译人员按需转换出自己工作中需要的文件,可以做到无缝对接。
附图说明
图1为本发明实施例一种JSON文件和EXCEL文件相互转化的方法流程图。
具体实施方式
下面结合附图及本发明的实施例对发明作进一步详细的说明。
实施例1
本发明所述的一种JSON文件和EXCEL文件相互转化的方法是由于计算机的数据处理能力比人工要快很多,因此可以通过实现一种自动转换的数据文件格式来替代人工操作,以此来达到提高效率。
由于翻译人员提供的数据形式是Excel形式,操作系统中使用的配置文件是json文件,因此可以使用现有的Excel文件数据库及json数据库来实现互相转换。本发明是使用基于C#的NPOI库及Newtonsoft.Json库。
参看图1,该一种JSON文件和EXCEL文件相互转化的方法,包括数据库和操作系统,该方法包括如下步骤:
步骤1:创建Data数据结构S1;
步骤2:读取JSON配置文件的数据S2;
步骤3:将JSON文件数据反序列化字符串为对象S3;
步骤4:创建Excel文件S4;
步骤5:将数据保存到Excel文件S5;
步骤6:读取Excel中的数据S6;
步骤7:将数据保存到Data对象中S7;
步骤8:将Data对象转换成JSON格式字符串S8;
步骤9:将数据保存到JSON文件S9。
所述步骤1创建Data数据结构是,建立一个专用于数据转换的中间类结构Data类,用于存储JSON格式的数据。
本发明为了为了数据转换过程中的操作方便,建立一个专门用于数据转换的中间类结构Data类,用于存储json格式的数据。该类只需要一个Dicti onary类型的数据,以便存储json的键值对。
所述步骤2读取JSON配置文件的数据是使用File类的ReadAllText方法将JSON文件中的文本数据全部读取出来,然后存于string变量中。
本实施例中,所述步骤2使用的是C#中的File类的ReadAllText方法将JSON文件中的文本数据全部读取出来,然后存于string变量中,用于后续使用。
所述步骤3将JSON文件数据反序列化字符串为对象是使用Newtonsoft.Json库的JsonConvert类的DeserializeObject方法将JSON字符串数据反序列化成Data类的对象数据。
本实施例中,在将json数据读取出来后,因为存在string变量中,没法对其进行结构化的操作,因此可以将其转换成前面定义的Data类的对象数据来进行操作,此过程使用Newtonsoft.Json库的JsonConvert类的Deseriali zeObject方法将json字符串数据反序列化成Data类的对象数据,这样在后面的处理中就可以直接使用操作对象的方式来操作json数据的键值对了。
所述步骤4创建Excel文件包括如下步骤:
1、创建一个XSSFWorkbook对象来初始化IWorkbook对象;
2、使用IWorkbook对象的CreateSheet方法来创建Excel中的Sheet;
3、使用C#的File类的Create方法创建Excel文件;
4、使用IWorkbook对象的Write方法将创建的工作簿及Sheet写入Excel
文件中。
本实施例中,因为需要将json数据转换成Excel数据,因此在将数据存入为Excel数据前需要先创建一个Excel文件,用来存储处理后的数据。此处用到NPOI库的IWorkbook、ISheet。
创建一个XSSFWorkbook对象来初始化IWorkbook对象,用于创建Exc el 2007以上版本的Excel文件的工作簿,然后使用IWorkbook对象的Creat eSheet方法来创建Excel中的Sheet(默认新建的Excel文件必须含有Sheet,不然打开会出错),然后使用C#的File类的Create方法创建Excel文件,然后使用IWorkbook对象的Write方法将前面创建的工作簿及Sheet写入Ex cel文件中。
所述步骤5将数据保存到Excel文件包括如下步骤:
1、使用FileStream打开文件;
2、使用NPOI库的XSSFWorkbook对象来初始化一个IWorkbook对象打开Excel文件;
3、使用IWorkbook对象的GetSheetAt方法打开要写入数据的Sheet初始化一个ISheet对象;
4、使用ISheet对象的CreateRow方法创建一个数据行初始化IRow对象;
5、使用IRow对象的CreateCell方法创建一个单元格ICell对象;
6、使用ICell对象的SetCellValue将数据写入到单元格中;
7、使用IWorkbook对象将数据写入到FileStream对象中;
8、使用FileStream对象的Write方法将数据写入到Excel文件。
本实施例中,在创建好Excel文件后,就可以向Excel文件写入数据了,首先使用C#的FileStream打开文件,然后使用NPOI库的XSSFWorkbook对象来初始化一个IWorkbook对象打开Excel文件,然后使用IWorkbook对象的GetSheetAt方法打开要写入数据的Sheet初始化一个ISheet对象,然后再使用ISheet对象的CreateRow方法创建一个数据行初始化IRow对象,然后再使用IRow对象的CreateCell方法创建一个单元格ICell对象,再使用ICell对象的SetCellValue将数据写入到单元格中,然后使用IWorkbook对象将数据写入到FileStream对象中,再使用FileStream对象的Write方法将数据写入文件。
上述所述是一种JSON文件转化为EXCEL文件的方法。
实施例2
参看图1,与上述实施例的不同之处在于,本发明还可以将一种EXCEL文件转化为JSON文件,该方法包括如下步骤:
步骤1:读取Excel中的数据;
步骤2:将数据保存到Data对象中;
步骤3:将Data对象转换成JSON格式字符串;
步骤4:将数据保存到JSON文件。
所述步骤1读取Excel中的数据包括如下步骤:
1、使用FileStream类文件打开Excel文件;
2、使用NPOI库的XSSFWorkbook类根据打开的文件初始化IWorkbook对象;
3、使用IWorkbook对象的GetSheetName方法打开需要读取数据的Sheet文件;
4、使用IWorkbook的GetSheet方法根据获取到的Sheet名来初始化ISheet对象;
5、使用ISheet对象的GetRow方法获取要读取的数据行的IRow对象;
6、使用IRow对象的GetCell方法来获取单元格的数据。
本实施例中,使用C#的FileStream类打开Excel文件,然后使用NPOI库的XSSFWorkbook类根据打开的文件初始化IWorkbook对象,使用IWorkbook对象的GetSheetName方法打开需要读取数据的Sheet,然后再使用IWorkbook的GetSheet方法根据获取到的Sheet名来初始化ISheet对象,然后使用ISheet对象的GetRow方法获取要读取的数据行的IRow对象,然后再使用IRow对象的GetCell方法来获取单元格的数据。
所述步骤2将数据保存到Data对象中包括创建一个Data对象,将读取后的数据依次按键值对的方式存储到Data对象中。
本实施例中,所述创建一个Data对象,是将读取后的数据依次按键值对的方式存储到Data对象中。
本实施例中,所述步骤3将Data对象转换成JSON格式字符串可以是读取Excel数据存储到Data对象后,通过Newtonsoft.Json库的JsonConvert类的SerializeObject方法将Data对象序列化成json字符串。
所述步骤4将数据保存到JSON文件是使用C#的StreamWrite类的WriteLine方法将JSON字符串数据写入到JSON文件中。
本发明所述JSON文件转化为EXCEL文件方法或者EXCEL文件转化为JSON文件方法,两种方法是可以相互转化的。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (6)
1.一种JSON文件和EXCEL文件相互转化方法,包括数据库和操作系统,其特征在于:该方法包括如下步骤:
步骤1:创建Data数据结构;
步骤2:读取JSON配置文件的数据;
步骤3:将JSON文件数据反序列化字符串为对象;
所述步骤3将JSON文件数据反序列化字符串为对象是使用Newtonsoft.Json库的JsonConvert类的DeserializeObject方法将JSON字符串数据反序列化成Data类的对象数据;
步骤4:创建Excel文件;所述步骤4创建Excel文件包括如下步骤:
1、创建一个XSSFWorkbook对象来初始化IWorkbook对象;
2、使用IWorkbook对象的CreateSheet方法来创建Excel中的Sheet;
3、使用C#的File类的Create方法创建Excel文件;
4、使用IWorkbook对象的Write方法将创建的工作簿及Sheet写入Excel文件中;
步骤5:将数据保存到Excel文件;所述步骤5将数据保存到Excel文件包括如下步骤:
1、使用FileStream打开文件;
2、使用NPOI库的XSSFWorkbook对象来初始化一个IWorkbook对象打开Excel文件;
3、使用IWorkbook对象的GetSheetAt方法打开要写入数据的Sheet初始化一个ISheet对象;
4、使用ISheet对象的CreateRow方法创建一个数据行初始化IRow对象;
5、使用IRow对象的CreateCell方法创建一个单元格ICell对象;
6、使用ICell对象的SetCellValue将数据写入到单元格中;
7、使用IWorkbook对象将数据写入到FileStream对象中;
8、使用FileStream对象的Write方法将数据写入到Excel文件;
步骤6:读取Excel中的数据;所述步骤6读取Excel中的数据包括如下步骤:
1、使用FileStream类文件打开Excel文件;
2、使用NPOI库的XSSFWorkbook类根据打开的文件初始化IWorkbook对象;
3、使用IWorkbook对象的GetSheetName方法打开需要读取数据的Sheet文件;
4、使用IWorkbook的GetSheet方法根据获取到的Sheet名来初始化ISheet对象;
5、使用ISheet对象的GetRow方法获取要读取的数据行的IRow对象;
6、使用IRow对象的GetCell方法来获取单元格的数据;
步骤7:将数据保存到Data对象中;
步骤8:将Data对象转换成JSON格式字符串;
步骤9:将数据保存到JSON文件。
2.根据权利要求1所述的一种JSON文件和EXCEL文件相互转化方法,其特征在于:所述步骤1创建Data数据结构是,建立一个专用于数据转换的中间类结构Data类,用于存储JSON格式的数据。
3.根据权利要求1所述的一种JSON文件和EXCEL文件相互转化方法,其特征在于:所述步骤2读取JSON配置文件的数据是使用File类的ReadAllText方法将JSON文件中的文本数据全部读取出来,然后存于string变量中。
4.根据权利要求1所述的一种JSON文件和EXCEL文件相互转化方法,其特征在于:所述步骤7将数据保存到Data对象中包括创建一个Data对象,将读取后的数据依次按键值对的方式存储到Data对象中。
5.根据权利要求1所述的一种JSON文件和EXCEL文件相互转化方法,其特征在于:所述步骤8将Data对象转换成JSON格式字符串包括读取Excel数据存储到Data对象后,通过JsonConvert的SerializeObject方法将Data对象序列化成json字符串。
6.根据权利要求1所述的一种JSON文件和EXCEL文件相互转化方法,其特征在于:所述步骤9将数据保存到JSON文件是使用StreamWrite类的WriteLine方法将JSON字符串数据写入到JSON文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910709633.2A CN110516207B (zh) | 2019-08-02 | 2019-08-02 | 一种json文件和excel文件相互转化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910709633.2A CN110516207B (zh) | 2019-08-02 | 2019-08-02 | 一种json文件和excel文件相互转化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110516207A CN110516207A (zh) | 2019-11-29 |
CN110516207B true CN110516207B (zh) | 2023-09-22 |
Family
ID=68624647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910709633.2A Active CN110516207B (zh) | 2019-08-02 | 2019-08-02 | 一种json文件和excel文件相互转化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110516207B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117787251B (zh) * | 2024-02-28 | 2024-05-07 | 江苏中威科技软件系统有限公司 | 多格式文件组合或合并阅读展开excel隐藏内容的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415741A (zh) * | 2018-02-13 | 2018-08-17 | 腾讯科技(深圳)有限公司 | 对象序列化和反序列化方法及相关装置 |
CN109408780A (zh) * | 2018-09-07 | 2019-03-01 | 山东中磁视讯股份有限公司 | 一种Excel文件转换为JSON文件的方法 |
CN109542541A (zh) * | 2017-09-21 | 2019-03-29 | 北京国双科技有限公司 | 反序列化方法及装置 |
-
2019
- 2019-08-02 CN CN201910709633.2A patent/CN110516207B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542541A (zh) * | 2017-09-21 | 2019-03-29 | 北京国双科技有限公司 | 反序列化方法及装置 |
CN108415741A (zh) * | 2018-02-13 | 2018-08-17 | 腾讯科技(深圳)有限公司 | 对象序列化和反序列化方法及相关装置 |
CN109408780A (zh) * | 2018-09-07 | 2019-03-01 | 山东中磁视讯股份有限公司 | 一种Excel文件转换为JSON文件的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110516207A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3641430B2 (ja) | 複数のプラットフォームを備えたコンピュータ用プログラム・インターフェース・コンバータ | |
CN101183355B (zh) | 复制和粘贴处理方法及装置 | |
US7496230B2 (en) | System and method for automatic natural language translation of embedded text regions in images during information transfer | |
US8122424B2 (en) | Automatic natural language translation during information transfer | |
WO2016206336A1 (zh) | 一种利于翻译工作的文件抽取和还原方法 | |
CN110516207B (zh) | 一种json文件和excel文件相互转化方法 | |
CN113076167A (zh) | 一种代码处理方法及相关设备 | |
CN106815181B (zh) | 一种InDesign排版的indd文件到Office文件的转换方法及装置 | |
CN109960547A (zh) | 软件多国语言翻译方法及系统 | |
CN101866331A (zh) | 不同语种xml文档的转换方法及装置 | |
Raymond et al. | Markup reconsidered | |
CN109446496A (zh) | 一种测试语言文件的转换方法、装置、设备及存储介质 | |
CN113221506A (zh) | 一种讲义排版的方法、装置、电子设备及存储介质 | |
CN110716785B (zh) | 一种多语言说明文档中界面图片截取方法、装置及系统 | |
Dunne | Localization and the (R) evolution of Translation | |
CN113961300A (zh) | 一种iOS APP字符串资源文件翻译方法及系统 | |
CN104503992B (zh) | 一种题库构建方法 | |
CN112613279A (zh) | 一种文件的转换方法、装置、计算机装置及可读存储介质 | |
Sin-Wai | Computer-aided translation: major concepts | |
CN101325758A (zh) | 可显示多种语言的移动通讯装置及方法 | |
CN101067785B (zh) | 一种基于嵌入式平台的资源管理方法及系统 | |
KR20210040545A (ko) | Xml 기반 다국어 매뉴얼 저작 장치 및 그 방법 | |
US20240152511A1 (en) | Transliteration of machine interpretable languages for enhanced compaction | |
CN116306510A (zh) | 一种Json文件转换为Word文档的方法 | |
CN114065782A (zh) | 一种word文档翻译保留原有样式的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |